Diff of the two buildlogs: -- --- b1/build.log 2024-01-06 11:01:21.146152823 +0000 +++ b2/build.log 2024-01-06 11:14:46.198640238 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Fri Jan 5 22:52:18 -12 2024 -I: pbuilder-time-stamp: 1704538338 +I: Current time: Sat Feb 8 07:24:24 +14 2025 +I: pbuilder-time-stamp: 1738949064 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/1446896/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/3818112/tmp/hooks/D01_modify_environment starting +debug: Running on codethink03-arm64. +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 Feb 7 17:24 /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/3818112/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/3818112/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='arm64' - DEBIAN_FRONTEND='noninteractive' + 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]="aarch64-unknown-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=arm64 + DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='bookworm' - HOME='/root' - HOST_ARCH='arm64' + DIRSTACK=() + DISTRIBUTION=bookworm + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='9e5e5f35b5324025864ad5dd01cbfce5' - 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='1446896' - PS1='# ' - PS2='> ' + INVOCATION_ID=7a7d6158f53640819082db1e6ce2c5cb + LANG=C + LANGUAGE=nl_BE:nl + LC_ALL=C + MACHTYPE=aarch64-unknown-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=3818112 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.z9p6gGdk/pbuilderrc_gc9P --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.z9p6gGdk/b1 --logfile b1/build.log ironic_21.1.0-3.dsc' - SUDO_GID='109' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://192.168.101.104: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.z9p6gGdk/pbuilderrc_quQW --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.z9p6gGdk/b2 --logfile b2/build.log ironic_21.1.0-3.dsc' + SUDO_GID=109 + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://192.168.101.104:3128 I: uname -a - Linux codethink04-arm64 6.1.0-17-cloud-arm64 #1 SMP Debian 6.1.69-1 (2023-12-30) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-17-cloud-arm64 #1 SMP Debian 6.1.69-1 (2023-12-30) aarch64 GNU/Linux I: ls -l /bin total 7104 -rwxr-xr-x 1 root root 1346480 Apr 23 2023 bash @@ -128,15 +160,15 @@ -rwxr-xr-x 1 root root 68456 Sep 20 2022 readlink -rwxr-xr-x 1 root root 68592 Sep 20 2022 rm -rwxr-xr-x 1 root root 68480 Sep 20 2022 rmdir - -rwxr-xr-x 1 root root 68392 Jul 28 23:46 run-parts + -rwxr-xr-x 1 root root 68392 Jul 28 2023 run-parts -rwxr-xr-x 1 root root 134536 Jan 5 2023 sed - lrwxrwxrwx 1 root root 4 Jan 5 2023 sh -> dash + lrwxrwxrwx 1 root root 9 Feb 7 17:24 sh -> /bin/bash -rwxr-xr-x 1 root root 68432 Sep 20 2022 sleep -rwxr-xr-x 1 root root 134088 Sep 20 2022 stty -rwsr-xr-x 1 root root 133312 Mar 23 2023 su -rwxr-xr-x 1 root root 68448 Sep 20 2022 sync -rwxr-xr-x 1 root root 539896 Apr 6 2023 tar - -rwxr-xr-x 1 root root 67904 Jul 28 23:46 tempfile + -rwxr-xr-x 1 root root 67904 Jul 28 2023 tempfile -rwxr-xr-x 1 root root 134160 Sep 20 2022 touch -rwxr-xr-x 1 root root 68384 Sep 20 2022 true -rwxr-xr-x 1 root root 67664 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/1446896/tmp/hooks/D02_print_environment finished +I: user script /srv/workspace/pbuilder/3818112/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 arm64 python3-swiftclient all 1:4.1.0-2 [76.7 kB] Get: 483 http://deb.debian.org/debian bookworm/main arm64 python3-zake all 0.2.2-4 [15.4 kB] Get: 484 http://deb.debian.org/debian bookworm/main arm64 python3-tooz all 3.1.0-3 [52.3 kB] -Fetched 141 MB in 4s (36.9 MB/s) +Fetched 141 MB in 2s (61.1 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libargon2-1:arm64. (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 ... 18171 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: Sat Jan 6 10:53:05 UTC 2024. -Universal Time is now: Sat Jan 6 10:53:05 UTC 2024. +Local time is now: Fri Feb 7 17:26:53 UTC 2025. +Universal Time is now: Fri Feb 7 17:26:53 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libdconf1:arm64 (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/3818112/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for bookworm +I: user script /srv/workspace/pbuilder/3818112/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 @@ -2957,7 +2993,23 @@ creating build/lib creating build/lib/ironic creating build/lib/ironic/tests +creating build/lib/ironic/tests/functional +copying ironic/tests/functional/__init__.py -> build/lib/ironic/tests/functional creating build/lib/ironic/tests/unit +creating build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/utils.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_root.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_proxy_middleware.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_ospmiddleware.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_middleware.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_method.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_hooks.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_healthcheck.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_functions.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_audit.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_acl.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/base.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/__init__.py -> build/lib/ironic/tests/unit/api creating build/lib/ironic/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 @@ -2977,257 +3029,31 @@ 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/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 -copying ironic/version.py -> build/lib/ironic -copying ironic/__init__.py -> build/lib/ironic -creating build/lib/ironic/drivers -creating build/lib/ironic/drivers/modules -creating build/lib/ironic/drivers/modules/redfish -copying ironic/drivers/modules/redfish/vendor.py -> build/lib/ironic/drivers/modules/redfish -copying ironic/drivers/modules/redfish/utils.py -> build/lib/ironic/drivers/modules/redfish -copying ironic/drivers/modules/redfish/raid.py -> build/lib/ironic/drivers/modules/redfish -copying ironic/drivers/modules/redfish/power.py -> build/lib/ironic/drivers/modules/redfish -copying ironic/drivers/modules/redfish/management.py -> build/lib/ironic/drivers/modules/redfish -copying ironic/drivers/modules/redfish/inspect.py -> build/lib/ironic/drivers/modules/redfish -copying ironic/drivers/modules/redfish/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/drivers -creating build/lib/ironic/tests/unit/drivers/modules -creating build/lib/ironic/tests/unit/drivers/modules/xclarity -copying ironic/tests/unit/drivers/modules/xclarity/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity -copying ironic/tests/unit/drivers/modules/xclarity/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity -copying ironic/tests/unit/drivers/modules/xclarity/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity -copying ironic/tests/unit/drivers/modules/xclarity/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity -creating build/lib/ironic/api -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/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/conductor -copying ironic/conductor/verify.py -> build/lib/ironic/conductor -copying ironic/conductor/utils.py -> build/lib/ironic/conductor -copying ironic/conductor/task_manager.py -> build/lib/ironic/conductor -copying ironic/conductor/steps.py -> build/lib/ironic/conductor -copying ironic/conductor/rpcapi.py -> build/lib/ironic/conductor -copying ironic/conductor/periodics.py -> build/lib/ironic/conductor -copying ironic/conductor/notification_utils.py -> build/lib/ironic/conductor -copying ironic/conductor/manager.py -> build/lib/ironic/conductor -copying ironic/conductor/deployments.py -> build/lib/ironic/conductor -copying ironic/conductor/cleaning.py -> build/lib/ironic/conductor -copying ironic/conductor/base_manager.py -> build/lib/ironic/conductor -copying ironic/conductor/allocations.py -> build/lib/ironic/conductor -copying ironic/conductor/__init__.py -> build/lib/ironic/conductor -creating build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/utils.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_root.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_proxy_middleware.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_ospmiddleware.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_middleware.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_method.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_hooks.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_healthcheck.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_functions.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_audit.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_acl.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/base.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/__init__.py -> build/lib/ironic/tests/unit/api -creating build/lib/ironic/objects -copying ironic/objects/volume_target.py -> build/lib/ironic/objects -copying ironic/objects/volume_connector.py -> build/lib/ironic/objects -copying ironic/objects/trait.py -> build/lib/ironic/objects -copying ironic/objects/portgroup.py -> build/lib/ironic/objects -copying ironic/objects/port.py -> build/lib/ironic/objects -copying ironic/objects/notification.py -> build/lib/ironic/objects -copying ironic/objects/node_history.py -> build/lib/ironic/objects -copying ironic/objects/node.py -> build/lib/ironic/objects -copying ironic/objects/indirection.py -> build/lib/ironic/objects -copying ironic/objects/fields.py -> build/lib/ironic/objects -copying ironic/objects/deployment.py -> build/lib/ironic/objects -copying ironic/objects/deploy_template.py -> build/lib/ironic/objects -copying ironic/objects/conductor.py -> build/lib/ironic/objects -copying ironic/objects/chassis.py -> build/lib/ironic/objects -copying ironic/objects/bios.py -> build/lib/ironic/objects -copying ironic/objects/base.py -> build/lib/ironic/objects -copying ironic/objects/allocation.py -> build/lib/ironic/objects -copying ironic/objects/__init__.py -> build/lib/ironic/objects -creating build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/tests/unit/drivers/modules/ilo/test_vendor.py -> build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/tests/unit/drivers/modules/ilo/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/tests/unit/drivers/modules/ilo/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/tests/unit/drivers/modules/ilo/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/tests/unit/drivers/modules/ilo/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py -> build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/tests/unit/drivers/modules/ilo/test_console.py -> build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/tests/unit/drivers/modules/ilo/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/tests/unit/drivers/modules/ilo/test_boot.py -> build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/tests/unit/drivers/modules/ilo/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/tests/unit/drivers/modules/ilo/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/tests/base.py -> build/lib/ironic/tests -copying ironic/tests/__init__.py -> build/lib/ironic/tests -creating build/lib/ironic/hacking -copying ironic/hacking/checks.py -> build/lib/ironic/hacking -copying ironic/hacking/__init__.py -> build/lib/ironic/hacking -copying ironic/tests/unit/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/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/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/functional -copying ironic/tests/functional/__init__.py -> build/lib/ironic/tests/functional -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/tests/unit/drivers/modules/drac -copying ironic/tests/unit/drivers/modules/drac/utils.py -> build/lib/ironic/tests/unit/drivers/modules/drac -copying ironic/tests/unit/drivers/modules/drac/test_utils.py -> build/lib/ironic/tests/unit/drivers/modules/drac -copying ironic/tests/unit/drivers/modules/drac/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/drac -copying ironic/tests/unit/drivers/modules/drac/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/drac -copying ironic/tests/unit/drivers/modules/drac/test_periodic_task.py -> build/lib/ironic/tests/unit/drivers/modules/drac -copying ironic/tests/unit/drivers/modules/drac/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/drac -copying ironic/tests/unit/drivers/modules/drac/test_job.py -> build/lib/ironic/tests/unit/drivers/modules/drac -copying ironic/tests/unit/drivers/modules/drac/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/drac -copying ironic/tests/unit/drivers/modules/drac/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/drac -copying ironic/tests/unit/drivers/modules/drac/test_boot.py -> build/lib/ironic/tests/unit/drivers/modules/drac -copying ironic/tests/unit/drivers/modules/drac/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/drac -copying ironic/tests/unit/drivers/modules/drac/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/drac -creating build/lib/ironic/drivers/modules/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/dhcp -copying ironic/dhcp/none.py -> build/lib/ironic/dhcp -copying ironic/dhcp/neutron.py -> build/lib/ironic/dhcp -copying ironic/dhcp/dnsmasq.py -> build/lib/ironic/dhcp -copying ironic/dhcp/base.py -> build/lib/ironic/dhcp -copying ironic/dhcp/__init__.py -> build/lib/ironic/dhcp -creating build/lib/ironic/drivers/modules/ibmc -copying ironic/drivers/modules/ibmc/vendor.py -> build/lib/ironic/drivers/modules/ibmc -copying ironic/drivers/modules/ibmc/utils.py -> build/lib/ironic/drivers/modules/ibmc -copying ironic/drivers/modules/ibmc/raid.py -> build/lib/ironic/drivers/modules/ibmc -copying ironic/drivers/modules/ibmc/power.py -> build/lib/ironic/drivers/modules/ibmc -copying ironic/drivers/modules/ibmc/mappings.py -> build/lib/ironic/drivers/modules/ibmc -copying ironic/drivers/modules/ibmc/management.py -> build/lib/ironic/drivers/modules/ibmc -copying ironic/drivers/modules/ibmc/__init__.py -> build/lib/ironic/drivers/modules/ibmc -creating build/lib/ironic/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/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/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/storage -copying ironic/tests/unit/drivers/modules/storage/test_external.py -> build/lib/ironic/tests/unit/drivers/modules/storage -copying ironic/tests/unit/drivers/modules/storage/test_cinder.py -> build/lib/ironic/tests/unit/drivers/modules/storage -copying ironic/tests/unit/drivers/modules/storage/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/storage -copying ironic/tests/unit/test_base.py -> build/lib/ironic/tests/unit -copying ironic/tests/unit/stubs.py -> build/lib/ironic/tests/unit -copying ironic/tests/unit/raid_constants.py -> build/lib/ironic/tests/unit -copying ironic/tests/unit/policy_fixture.py -> build/lib/ironic/tests/unit -copying ironic/tests/unit/__init__.py -> build/lib/ironic/tests/unit -creating build/lib/ironic/common -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/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/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/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 +creating build/lib/ironic/drivers/modules +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/drivers/modules/network +copying ironic/drivers/modules/network/noop.py -> build/lib/ironic/drivers/modules/network +copying ironic/drivers/modules/network/neutron.py -> build/lib/ironic/drivers/modules/network +copying ironic/drivers/modules/network/flat.py -> build/lib/ironic/drivers/modules/network +copying ironic/drivers/modules/network/common.py -> build/lib/ironic/drivers/modules/network +copying ironic/drivers/modules/network/__init__.py -> build/lib/ironic/drivers/modules/network copying ironic/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 @@ -3243,78 +3069,10 @@ copying ironic/drivers/drac.py -> build/lib/ironic/drivers copying ironic/drivers/base.py -> build/lib/ironic/drivers copying ironic/drivers/__init__.py -> build/lib/ironic/drivers -creating build/lib/ironic/tests/unit/drivers/modules/ibmc -copying ironic/tests/unit/drivers/modules/ibmc/test_vendor.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc -copying ironic/tests/unit/drivers/modules/ibmc/test_utils.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc -copying ironic/tests/unit/drivers/modules/ibmc/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc -copying ironic/tests/unit/drivers/modules/ibmc/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc -copying ironic/tests/unit/drivers/modules/ibmc/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc -copying ironic/tests/unit/drivers/modules/ibmc/base.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc -copying ironic/tests/unit/drivers/modules/ibmc/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc -creating build/lib/ironic/tests/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/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/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/common -copying ironic/tests/unit/common/test_wsgi_service.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_utils.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_swift.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_states.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_rpc_service.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_rpc.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_release_mappings.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_raid.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_pxe_utils.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_policy.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_nova.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_neutron.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_network.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_molds.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_kickstart_utils.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_keystone.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_images.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_image_service.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_hash_ring.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_glance_service.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_fsm.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_driver_factory.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_context.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_cinder.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_args.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/__init__.py -> build/lib/ironic/tests/unit/common -creating build/lib/ironic/db/sqlalchemy -copying ironic/db/sqlalchemy/models.py -> build/lib/ironic/db/sqlalchemy -copying ironic/db/sqlalchemy/migration.py -> build/lib/ironic/db/sqlalchemy -copying ironic/db/sqlalchemy/api.py -> build/lib/ironic/db/sqlalchemy -copying ironic/db/sqlalchemy/__init__.py -> build/lib/ironic/db/sqlalchemy -creating build/lib/ironic/drivers/modules/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/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 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 @@ -3330,6 +3088,36 @@ 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 +copying ironic/tests/base.py -> build/lib/ironic/tests +copying ironic/tests/__init__.py -> build/lib/ironic/tests +creating build/lib/ironic/tests/unit/drivers/modules +creating build/lib/ironic/tests/unit/drivers/modules/ibmc +copying ironic/tests/unit/drivers/modules/ibmc/test_vendor.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc +copying ironic/tests/unit/drivers/modules/ibmc/test_utils.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc +copying ironic/tests/unit/drivers/modules/ibmc/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc +copying ironic/tests/unit/drivers/modules/ibmc/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc +copying ironic/tests/unit/drivers/modules/ibmc/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc +copying ironic/tests/unit/drivers/modules/ibmc/base.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc +copying ironic/tests/unit/drivers/modules/ibmc/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc +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/conf copying ironic/conf/xclarity.py -> build/lib/ironic/conf copying ironic/conf/swift.py -> build/lib/ironic/conf @@ -3366,25 +3154,49 @@ 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/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/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/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/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/conductor +copying ironic/conductor/verify.py -> build/lib/ironic/conductor +copying ironic/conductor/utils.py -> build/lib/ironic/conductor +copying ironic/conductor/task_manager.py -> build/lib/ironic/conductor +copying ironic/conductor/steps.py -> build/lib/ironic/conductor +copying ironic/conductor/rpcapi.py -> build/lib/ironic/conductor +copying ironic/conductor/periodics.py -> build/lib/ironic/conductor +copying ironic/conductor/notification_utils.py -> build/lib/ironic/conductor +copying ironic/conductor/manager.py -> build/lib/ironic/conductor +copying ironic/conductor/deployments.py -> build/lib/ironic/conductor +copying ironic/conductor/cleaning.py -> build/lib/ironic/conductor +copying ironic/conductor/base_manager.py -> build/lib/ironic/conductor +copying ironic/conductor/allocations.py -> build/lib/ironic/conductor +copying ironic/conductor/__init__.py -> build/lib/ironic/conductor 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 @@ -3406,6 +3218,88 @@ copying ironic/drivers/modules/agent_base.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/__init__.py -> build/lib/ironic/drivers/modules +creating build/lib/ironic/drivers/modules/ibmc +copying ironic/drivers/modules/ibmc/vendor.py -> build/lib/ironic/drivers/modules/ibmc +copying ironic/drivers/modules/ibmc/utils.py -> build/lib/ironic/drivers/modules/ibmc +copying ironic/drivers/modules/ibmc/raid.py -> build/lib/ironic/drivers/modules/ibmc +copying ironic/drivers/modules/ibmc/power.py -> build/lib/ironic/drivers/modules/ibmc +copying ironic/drivers/modules/ibmc/mappings.py -> build/lib/ironic/drivers/modules/ibmc +copying ironic/drivers/modules/ibmc/management.py -> build/lib/ironic/drivers/modules/ibmc +copying ironic/drivers/modules/ibmc/__init__.py -> build/lib/ironic/drivers/modules/ibmc +creating build/lib/ironic/tests/unit/db/sqlalchemy +copying ironic/tests/unit/db/sqlalchemy/test_types.py -> build/lib/ironic/tests/unit/db/sqlalchemy +copying ironic/tests/unit/db/sqlalchemy/test_models.py -> build/lib/ironic/tests/unit/db/sqlalchemy +copying ironic/tests/unit/db/sqlalchemy/test_migrations.py -> build/lib/ironic/tests/unit/db/sqlalchemy +copying ironic/tests/unit/db/sqlalchemy/test_api.py -> build/lib/ironic/tests/unit/db/sqlalchemy +copying ironic/tests/unit/db/sqlalchemy/__init__.py -> build/lib/ironic/tests/unit/db/sqlalchemy +creating build/lib/ironic/drivers/modules/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/common +copying ironic/common/wsgi_service.py -> build/lib/ironic/common +copying ironic/common/utils.py -> build/lib/ironic/common +copying ironic/common/swift.py -> build/lib/ironic/common +copying ironic/common/states.py -> build/lib/ironic/common +copying ironic/common/service.py -> build/lib/ironic/common +copying ironic/common/rpc_service.py -> build/lib/ironic/common +copying ironic/common/rpc.py -> build/lib/ironic/common +copying ironic/common/release_mappings.py -> build/lib/ironic/common +copying ironic/common/raid.py -> build/lib/ironic/common +copying ironic/common/pxe_utils.py -> build/lib/ironic/common +copying ironic/common/profiler.py -> build/lib/ironic/common +copying ironic/common/policy.py -> build/lib/ironic/common +copying ironic/common/nova.py -> build/lib/ironic/common +copying ironic/common/neutron.py -> build/lib/ironic/common +copying ironic/common/network.py -> build/lib/ironic/common +copying ironic/common/molds.py -> build/lib/ironic/common +copying ironic/common/kickstart_utils.py -> build/lib/ironic/common +copying ironic/common/keystone.py -> build/lib/ironic/common +copying ironic/common/indicator_states.py -> build/lib/ironic/common +copying ironic/common/images.py -> build/lib/ironic/common +copying ironic/common/image_service.py -> build/lib/ironic/common +copying ironic/common/i18n.py -> build/lib/ironic/common +copying ironic/common/hash_ring.py -> build/lib/ironic/common +copying ironic/common/fsm.py -> build/lib/ironic/common +copying ironic/common/faults.py -> build/lib/ironic/common +copying ironic/common/exception.py -> build/lib/ironic/common +copying ironic/common/driver_factory.py -> build/lib/ironic/common +copying ironic/common/dhcp_factory.py -> build/lib/ironic/common +copying ironic/common/context.py -> build/lib/ironic/common +copying ironic/common/config.py -> build/lib/ironic/common +copying ironic/common/components.py -> build/lib/ironic/common +copying ironic/common/cinder.py -> build/lib/ironic/common +copying ironic/common/boot_modes.py -> build/lib/ironic/common +copying ironic/common/boot_devices.py -> build/lib/ironic/common +copying ironic/common/args.py -> build/lib/ironic/common +copying ironic/common/__init__.py -> build/lib/ironic/common +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/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/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/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/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 @@ -3426,6 +3320,40 @@ copying ironic/tests/unit/api/controllers/v1/test_chassis.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_allocation.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/__init__.py -> build/lib/ironic/tests/unit/api/controllers/v1 +creating build/lib/ironic/tests/unit/drivers/modules/intel_ipmi +copying ironic/tests/unit/drivers/modules/intel_ipmi/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/intel_ipmi +copying ironic/tests/unit/drivers/modules/intel_ipmi/test_intel_ipmi.py -> build/lib/ironic/tests/unit/drivers/modules/intel_ipmi +copying ironic/tests/unit/drivers/modules/intel_ipmi/base.py -> build/lib/ironic/tests/unit/drivers/modules/intel_ipmi +copying ironic/tests/unit/drivers/modules/intel_ipmi/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/intel_ipmi +creating build/lib/ironic/drivers/modules/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/dhcp +copying ironic/dhcp/none.py -> build/lib/ironic/dhcp +copying ironic/dhcp/neutron.py -> build/lib/ironic/dhcp +copying ironic/dhcp/dnsmasq.py -> build/lib/ironic/dhcp +copying ironic/dhcp/base.py -> build/lib/ironic/dhcp +copying ironic/dhcp/__init__.py -> build/lib/ironic/dhcp +creating build/lib/ironic/tests/unit/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/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/api +creating build/lib/ironic/api/controllers creating build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/volume_target.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/volume_connector.py -> build/lib/ironic/api/controllers/v1 @@ -3446,6 +3374,90 @@ copying ironic/api/controllers/v1/bios.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/allocation.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/__init__.py -> build/lib/ironic/api/controllers/v1 +creating build/lib/ironic/tests/unit/conf +copying ironic/tests/unit/conf/test_auth.py -> build/lib/ironic/tests/unit/conf +copying ironic/tests/unit/conf/__init__.py -> build/lib/ironic/tests/unit/conf +creating build/lib/ironic/tests/unit/drivers/modules/xclarity +copying ironic/tests/unit/drivers/modules/xclarity/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity +copying ironic/tests/unit/drivers/modules/xclarity/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity +copying ironic/tests/unit/drivers/modules/xclarity/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity +copying ironic/tests/unit/drivers/modules/xclarity/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity +creating build/lib/ironic/db +copying ironic/db/migration.py -> build/lib/ironic/db +copying ironic/db/api.py -> build/lib/ironic/db +copying ironic/db/__init__.py -> build/lib/ironic/db +creating build/lib/ironic/tests/unit/drivers/modules/storage +copying ironic/tests/unit/drivers/modules/storage/test_external.py -> build/lib/ironic/tests/unit/drivers/modules/storage +copying ironic/tests/unit/drivers/modules/storage/test_cinder.py -> build/lib/ironic/tests/unit/drivers/modules/storage +copying ironic/tests/unit/drivers/modules/storage/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/storage +copying ironic/version.py -> build/lib/ironic +copying ironic/__init__.py -> build/lib/ironic +creating build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_wsgi_service.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_utils.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_swift.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_states.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_rpc_service.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_rpc.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_release_mappings.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_raid.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_pxe_utils.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_policy.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_nova.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_neutron.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_network.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_molds.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_kickstart_utils.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_keystone.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_images.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_image_service.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_hash_ring.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_glance_service.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_fsm.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_driver_factory.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_context.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_cinder.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_args.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/__init__.py -> build/lib/ironic/tests/unit/common +creating build/lib/ironic/tests/unit/drivers/modules/drac +copying ironic/tests/unit/drivers/modules/drac/utils.py -> build/lib/ironic/tests/unit/drivers/modules/drac +copying ironic/tests/unit/drivers/modules/drac/test_utils.py -> build/lib/ironic/tests/unit/drivers/modules/drac +copying ironic/tests/unit/drivers/modules/drac/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/drac +copying ironic/tests/unit/drivers/modules/drac/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/drac +copying ironic/tests/unit/drivers/modules/drac/test_periodic_task.py -> build/lib/ironic/tests/unit/drivers/modules/drac +copying ironic/tests/unit/drivers/modules/drac/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/drac +copying ironic/tests/unit/drivers/modules/drac/test_job.py -> build/lib/ironic/tests/unit/drivers/modules/drac +copying ironic/tests/unit/drivers/modules/drac/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/drac +copying ironic/tests/unit/drivers/modules/drac/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/drac +copying ironic/tests/unit/drivers/modules/drac/test_boot.py -> build/lib/ironic/tests/unit/drivers/modules/drac +copying ironic/tests/unit/drivers/modules/drac/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/drac +copying ironic/tests/unit/drivers/modules/drac/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/drac +creating build/lib/ironic/drivers/modules/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 +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/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/cmd copying ironic/cmd/status.py -> build/lib/ironic/cmd copying ironic/cmd/singleprocess.py -> build/lib/ironic/cmd @@ -3453,48 +3465,55 @@ 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 -copying ironic/common/wsgi_service.py -> build/lib/ironic/common -copying ironic/common/utils.py -> build/lib/ironic/common -copying ironic/common/swift.py -> build/lib/ironic/common -copying ironic/common/states.py -> build/lib/ironic/common -copying ironic/common/service.py -> build/lib/ironic/common -copying ironic/common/rpc_service.py -> build/lib/ironic/common -copying ironic/common/rpc.py -> build/lib/ironic/common -copying ironic/common/release_mappings.py -> build/lib/ironic/common -copying ironic/common/raid.py -> build/lib/ironic/common -copying ironic/common/pxe_utils.py -> build/lib/ironic/common -copying ironic/common/profiler.py -> build/lib/ironic/common -copying ironic/common/policy.py -> build/lib/ironic/common -copying ironic/common/nova.py -> build/lib/ironic/common -copying ironic/common/neutron.py -> build/lib/ironic/common -copying ironic/common/network.py -> build/lib/ironic/common -copying ironic/common/molds.py -> build/lib/ironic/common -copying ironic/common/kickstart_utils.py -> build/lib/ironic/common -copying ironic/common/keystone.py -> build/lib/ironic/common -copying ironic/common/indicator_states.py -> build/lib/ironic/common -copying ironic/common/images.py -> build/lib/ironic/common -copying ironic/common/image_service.py -> build/lib/ironic/common -copying ironic/common/i18n.py -> build/lib/ironic/common -copying ironic/common/hash_ring.py -> build/lib/ironic/common -copying ironic/common/fsm.py -> build/lib/ironic/common -copying ironic/common/faults.py -> build/lib/ironic/common -copying ironic/common/exception.py -> build/lib/ironic/common -copying ironic/common/driver_factory.py -> build/lib/ironic/common -copying ironic/common/dhcp_factory.py -> build/lib/ironic/common -copying ironic/common/context.py -> build/lib/ironic/common -copying ironic/common/config.py -> build/lib/ironic/common -copying ironic/common/components.py -> build/lib/ironic/common -copying ironic/common/cinder.py -> build/lib/ironic/common -copying ironic/common/boot_modes.py -> build/lib/ironic/common -copying ironic/common/boot_devices.py -> build/lib/ironic/common -copying ironic/common/args.py -> build/lib/ironic/common -copying ironic/common/__init__.py -> build/lib/ironic/common +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/hacking +copying ironic/hacking/checks.py -> build/lib/ironic/hacking +copying ironic/hacking/__init__.py -> build/lib/ironic/hacking +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/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/objects +copying ironic/objects/volume_target.py -> build/lib/ironic/objects +copying ironic/objects/volume_connector.py -> build/lib/ironic/objects +copying ironic/objects/trait.py -> build/lib/ironic/objects +copying ironic/objects/portgroup.py -> build/lib/ironic/objects +copying ironic/objects/port.py -> build/lib/ironic/objects +copying ironic/objects/notification.py -> build/lib/ironic/objects +copying ironic/objects/node_history.py -> build/lib/ironic/objects +copying ironic/objects/node.py -> build/lib/ironic/objects +copying ironic/objects/indirection.py -> build/lib/ironic/objects +copying ironic/objects/fields.py -> build/lib/ironic/objects +copying ironic/objects/deployment.py -> build/lib/ironic/objects +copying ironic/objects/deploy_template.py -> build/lib/ironic/objects +copying ironic/objects/conductor.py -> build/lib/ironic/objects +copying ironic/objects/chassis.py -> build/lib/ironic/objects +copying ironic/objects/bios.py -> build/lib/ironic/objects +copying ironic/objects/base.py -> build/lib/ironic/objects +copying ironic/objects/allocation.py -> build/lib/ironic/objects +copying ironic/objects/__init__.py -> build/lib/ironic/objects creating build/lib/ironic/tests/unit/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 @@ -3503,6 +3522,23 @@ 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/db/sqlalchemy +copying ironic/db/sqlalchemy/models.py -> build/lib/ironic/db/sqlalchemy +copying ironic/db/sqlalchemy/migration.py -> build/lib/ironic/db/sqlalchemy +copying ironic/db/sqlalchemy/api.py -> build/lib/ironic/db/sqlalchemy +copying ironic/db/sqlalchemy/__init__.py -> build/lib/ironic/db/sqlalchemy +creating build/lib/ironic/drivers/modules/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 running egg_info creating ironic.egg-info writing ironic.egg-info/PKG-INFO @@ -3966,9 +4002,82 @@ copying ironic/tests/unit/api/test_rbac_legacy.yaml -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_rbac_project_scoped.yaml -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_rbac_system_scoped.yaml -> build/lib/ironic/tests/unit/api +copying ironic/drivers/raid_config_schema.json -> build/lib/ironic/drivers +copying ironic/tests/unit/drivers/boot-fallback.ipxe -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/boot.ipxe -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/ipxe_config.template -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/ipxe_config_boot_from_anaconda.template -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/ipxe_config_boot_from_iso.template -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/ipxe_config_boot_from_ramdisk.template -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_multipath.template -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/ipxe_config_timeout.template -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/ks_extra_vars.tmpl -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/ks_missing_var.tmpl -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/pxe_config.template -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/pxe_grub_config.template -> build/lib/ironic/tests/unit/drivers creating build/lib/ironic/tests/json_samples copying ironic/tests/json_samples/network_data.json -> build/lib/ironic/tests/json_samples -copying ironic/drivers/raid_config_schema.json -> build/lib/ironic/drivers +copying ironic/drivers/modules/boot.ipxe -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/initial_grub_cfg.template -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/ipxe_config.template -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/ks.cfg.template -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/pxe_config.template -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/pxe_grub_config.template -> build/lib/ironic/drivers/modules +copying ironic/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/api/controllers/v1/network-data-schema.json -> build/lib/ironic/api/controllers/v1 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 @@ -3976,6 +4085,10 @@ copying ironic/tests/unit/common/json_samples/neutron_port_show_ipv6.json -> build/lib/ironic/tests/unit/common/json_samples copying ironic/tests/unit/common/json_samples/neutron_subnet_show.json -> build/lib/ironic/tests/unit/common/json_samples copying ironic/tests/unit/common/json_samples/neutron_subnet_show_ipv6.json -> build/lib/ironic/tests/unit/common/json_samples +copying ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ng.xml -> build/lib/ironic/tests/unit/drivers/modules/irmc +copying ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ok.xml -> build/lib/ironic/tests/unit/drivers/modules/irmc +creating build/lib/ironic/tests/unit/drivers/modules/network/json_samples +copying ironic/tests/unit/drivers/modules/network/json_samples/network_data.json -> build/lib/ironic/tests/unit/drivers/modules/network/json_samples copying ironic/db/sqlalchemy/alembic.ini -> build/lib/ironic/db/sqlalchemy creating build/lib/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/README -> build/lib/ironic/db/sqlalchemy/alembic @@ -4039,83 +4152,6 @@ 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 -creating build/lib/ironic/drivers/modules/ansible/playbooks -copying ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks -copying ironic/drivers/modules/ansible/playbooks/ansible.cfg -> build/lib/ironic/drivers/modules/ansible/playbooks -copying ironic/drivers/modules/ansible/playbooks/clean.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks -copying ironic/drivers/modules/ansible/playbooks/clean_steps.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks -copying ironic/drivers/modules/ansible/playbooks/deploy.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks -copying ironic/drivers/modules/ansible/playbooks/inventory -> build/lib/ironic/drivers/modules/ansible/playbooks -copying ironic/drivers/modules/ansible/playbooks/shutdown.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks -creating build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins -copying ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.ini -> build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins -copying ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py -> build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins -creating build/lib/ironic/drivers/modules/ansible/playbooks/library -copying ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library -copying ironic/drivers/modules/ansible/playbooks/library/root_hints.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library -copying ironic/drivers/modules/ansible/playbooks/library/stream_url.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library -creating build/lib/ironic/drivers/modules/ansible/playbooks/roles -creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean -creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults -copying ironic/drivers/modules/ansible/playbooks/roles/clean/defaults/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults -creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks -copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks -copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/shred.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks -copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/wipe.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks -copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/zap.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks -creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure -creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults -copying ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults -creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks -copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks -copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks -copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks -creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy -creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files -copying ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files -creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks -copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks -copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks -copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks -copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks -creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover -creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks -copying ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks -copying ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks -creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare -creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks -copying ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks -copying ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks -creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown -creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks -copying ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks -copying ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ng.xml -> build/lib/ironic/tests/unit/drivers/modules/irmc -copying ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ok.xml -> build/lib/ironic/tests/unit/drivers/modules/irmc -copying ironic/drivers/modules/boot.ipxe -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/initial_grub_cfg.template -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/ipxe_config.template -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/ks.cfg.template -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/pxe_config.template -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/pxe_grub_config.template -> build/lib/ironic/drivers/modules -copying ironic/api/controllers/v1/network-data-schema.json -> build/lib/ironic/api/controllers/v1 -copying ironic/common/grub_conf.template -> build/lib/ironic/common -copying ironic/common/isolinux_config.template -> build/lib/ironic/common -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 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,6 +4159,28 @@ 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/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/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/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 @@ -4130,91 +4188,8 @@ 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/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 -copying build/lib/ironic/conf/anaconda.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/ansible.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/api.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/audit.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/auth.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/cinder.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/conductor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/console.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/database.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/default.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/deploy.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/dhcp.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/dnsmasq.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/drac.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/glance.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/healthcheck.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/ibmc.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/ilo.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/inspector.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/ipmi.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/irmc.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/metrics.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/metrics_statsd.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/molds.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/neutron.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/nova.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/opts.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/pxe.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/redfish.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -copying build/lib/ironic/conf/service_catalog.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -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/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/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 +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/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 @@ -4287,44 +4262,25 @@ 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/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 -copying build/lib/ironic/conductor/base_manager.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor -copying build/lib/ironic/conductor/cleaning.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor -copying build/lib/ironic/conductor/deployments.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor -copying build/lib/ironic/conductor/manager.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor -copying build/lib/ironic/conductor/notification_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor -copying build/lib/ironic/conductor/periodics.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor -copying build/lib/ironic/conductor/rpcapi.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor -copying build/lib/ironic/conductor/steps.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor -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 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 +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/controllers +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/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 @@ -4346,23 +4302,105 @@ 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/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/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 +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/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/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 +copying build/lib/ironic/conductor/base_manager.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor +copying build/lib/ironic/conductor/cleaning.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor +copying build/lib/ironic/conductor/deployments.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor +copying build/lib/ironic/conductor/manager.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor +copying build/lib/ironic/conductor/notification_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor +copying build/lib/ironic/conductor/periodics.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor +copying build/lib/ironic/conductor/rpcapi.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor +copying build/lib/ironic/conductor/steps.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor +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 +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 +copying build/lib/ironic/conf/anaconda.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/ansible.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/api.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/audit.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/auth.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/cinder.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/conductor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/console.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/database.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/default.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/deploy.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/dhcp.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/dnsmasq.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/drac.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/glance.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/healthcheck.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/ibmc.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/ilo.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/inspector.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/ipmi.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/irmc.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/metrics.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/metrics_statsd.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/molds.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/neutron.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/nova.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/opts.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/pxe.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/redfish.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +copying build/lib/ironic/conf/service_catalog.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +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/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 @@ -4387,27 +4425,30 @@ 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 -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 -copying build/lib/ironic/drivers/modules/agent_client.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_power.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/boot_mode_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/console_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/deploy_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/fake.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/image_cache.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/image_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/inspect_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/inspector.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/ipmitool.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/ipxe.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/noop.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/noop_mgmt.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/pxe.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/pxe_base.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/ramdisk.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/snmp.py -> /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/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/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/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/ansible creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles @@ -4461,41 +4502,16 @@ 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/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/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/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/storage copying build/lib/ironic/drivers/modules/storage/__init__.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/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/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 @@ -4504,23 +4520,27 @@ 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/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/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 +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 +copying build/lib/ironic/drivers/modules/agent_client.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_power.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/boot_mode_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/console_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/deploy_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/fake.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/image_cache.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/image_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/inspect_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/inspector.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/ipmitool.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/ipxe.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/noop.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/noop_mgmt.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/pxe.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/pxe_base.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/ramdisk.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/snmp.py -> /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/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 @@ -4532,13 +4552,27 @@ copying build/lib/ironic/drivers/modules/redfish/raid.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/utils.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/vendor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish -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/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/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/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/unit @@ -4581,6 +4615,9 @@ 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/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/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 @@ -4596,60 +4633,35 @@ 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/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 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/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 -copying build/lib/ironic/tests/unit/api/test_rbac_legacy.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_acl_basic.yaml -> /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 -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 -copying build/lib/ironic/tests/unit/api/controllers/v1/test_chassis.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_collection.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_conductor.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_deploy_template.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_driver.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_event.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_node.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_notification_utils.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_port.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_portgroup.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_ramdisk.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_root.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_utils.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_versions.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.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 -copying build/lib/ironic/tests/unit/api/__init__.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/base.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/test_acl.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/test_audit.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/test_functions.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/test_healthcheck.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/test_hooks.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/test_method.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/test_middleware.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/test_ospmiddleware.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/test_proxy_middleware.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/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/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/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/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 @@ -4665,25 +4677,21 @@ copying build/lib/ironic/tests/unit/drivers/ipxe_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/boot.ipxe -> /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/boot-fallback.ipxe -> /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/__init__.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/test_base.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/test_drac.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/test_fake_hardware.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/test_generic.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/test_ibmc.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/test_ilo.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/test_ipmi.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/test_irmc.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/test_redfish.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/test_snmp.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/test_utils.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/test_xclarity.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_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/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/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/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 @@ -4704,34 +4712,6 @@ 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 -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/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 -copying build/lib/ironic/tests/unit/drivers/modules/ibmc/test_management.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_power.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_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/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/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/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 @@ -4745,6 +4725,32 @@ 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/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/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/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/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 +copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_boot.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_common.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_console.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_firmware_processor.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_inspect.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_management.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_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 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 @@ -4764,47 +4770,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/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 -copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_boot.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_common.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_console.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_firmware_processor.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_inspect.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_management.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_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/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/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/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 +copying build/lib/ironic/tests/unit/drivers/modules/ibmc/test_management.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_power.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_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 +copying build/lib/ironic/tests/unit/drivers/__init__.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/test_base.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/test_drac.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/test_fake_hardware.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/test_generic.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/test_ibmc.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/test_ilo.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/test_ipmi.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/test_irmc.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/test_redfish.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/test_snmp.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/test_utils.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/test_xclarity.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_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/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 @@ -4824,91 +4817,77 @@ 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/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 +copying build/lib/ironic/tests/unit/api/test_rbac_legacy.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_acl_basic.yaml -> /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 +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 +copying build/lib/ironic/tests/unit/api/controllers/v1/test_chassis.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_collection.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_conductor.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_deploy_template.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_driver.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_event.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_node.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_notification_utils.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_port.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_portgroup.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_ramdisk.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_root.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_utils.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_versions.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.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 +copying build/lib/ironic/tests/unit/api/__init__.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/base.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/test_acl.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/test_audit.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/test_functions.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/test_healthcheck.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/test_hooks.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/test_method.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/test_middleware.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/test_ospmiddleware.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/test_proxy_middleware.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/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/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 +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/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/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/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 -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/ansible.py to ansible.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/api.py to api.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/audit.py to audit.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/auth.py to auth.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/cinder.py to cinder.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/conductor.py to conductor.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/console.py to console.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/database.py to database.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/default.py to default.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/deploy.py to deploy.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/dhcp.py to dhcp.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/dnsmasq.py to dnsmasq.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/drac.py to drac.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/glance.py to glance.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/healthcheck.py to healthcheck.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/ibmc.py to ibmc.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/ilo.py to ilo.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/inspector.py to inspector.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/ipmi.py to ipmi.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/irmc.py to irmc.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/metrics.py to metrics.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/metrics_statsd.py to metrics_statsd.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/molds.py to molds.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/neutron.py to neutron.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/nova.py to nova.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/opts.py to opts.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/pxe.py to pxe.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/redfish.py to redfish.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/service_catalog.py to service_catalog.cpython-311.pyc -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/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/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/__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/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 @@ -4974,39 +4953,22 @@ 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/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 -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/cleaning.py to cleaning.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/deployments.py to deployments.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/manager.py to manager.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/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/conductor/periodics.py to periodics.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/rpcapi.py to rpcapi.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/steps.py to steps.cpython-311.pyc -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/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/__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/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/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 @@ -5026,22 +4988,98 @@ 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/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/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/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/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/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 +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/cleaning.py to cleaning.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/deployments.py to deployments.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/manager.py to manager.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/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/conductor/periodics.py to periodics.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/rpcapi.py to rpcapi.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/steps.py to steps.cpython-311.pyc +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/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 +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/ansible.py to ansible.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/api.py to api.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/audit.py to audit.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/auth.py to auth.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/cinder.py to cinder.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/conductor.py to conductor.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/console.py to console.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/database.py to database.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/default.py to default.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/deploy.py to deploy.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/dhcp.py to dhcp.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/dnsmasq.py to dnsmasq.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/drac.py to drac.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/glance.py to glance.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/healthcheck.py to healthcheck.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/ibmc.py to ibmc.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/ilo.py to ilo.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/inspector.py to inspector.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/ipmi.py to ipmi.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/irmc.py to irmc.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/metrics.py to metrics.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/metrics_statsd.py to metrics_statsd.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/molds.py to molds.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/neutron.py to neutron.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/nova.py to nova.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/opts.py to opts.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/pxe.py to pxe.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/redfish.py to redfish.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/service_catalog.py to service_catalog.cpython-311.pyc +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/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,48 @@ 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/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/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/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/ansible/playbooks/library/stream_url.py to stream_url.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library/root_hints.py to root_hints.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py to facts_wwn.cpython-311.pyc +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/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/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/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/__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 @@ -5078,12 +5158,21 @@ byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/pxe_base.py to pxe_base.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ramdisk.py to ramdisk.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/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/modules/ansible/playbooks/library/stream_url.py to stream_url.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library/root_hints.py to root_hints.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py to facts_wwn.cpython-311.pyc -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/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 +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/firmware_utils.py to firmware_utils.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/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/redfish/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/redfish/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/redfish/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/redfish/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/redfish/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/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/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 @@ -5095,60 +5184,6 @@ 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/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/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/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/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/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/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/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/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 -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/firmware_utils.py to firmware_utils.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/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/redfish/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/redfish/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/redfish/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/redfish/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/redfish/vendor.py to vendor.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/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/__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 @@ -5181,6 +5216,8 @@ 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/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/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 @@ -5195,68 +5232,45 @@ 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/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/__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/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 -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_collection.py to test_collection.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_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/api/controllers/v1/test_deploy_template.py to test_deploy_template.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_driver.py to test_driver.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_event.py to test_event.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_node.py to test_node.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_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/api/controllers/v1/test_port.py to test_port.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_portgroup.py to test_portgroup.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_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/api/controllers/v1/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/controllers/v1/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/api/controllers/v1/test_versions.py to test_versions.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.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/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 -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_audit.py to test_audit.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_functions.py to test_functions.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_healthcheck.py to test_healthcheck.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_hooks.py to test_hooks.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_method.py to test_method.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_middleware.py to test_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_ospmiddleware.py to test_ospmiddleware.cpython-311.pyc -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/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/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 -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_fake_hardware.py to test_fake_hardware.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_generic.py to test_generic.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_ibmc.py to test_ibmc.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_ilo.py to test_ilo.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_ipmi.py to test_ipmi.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_irmc.py to test_irmc.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_redfish.py to test_redfish.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/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/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/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/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/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/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/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 @@ -5271,30 +5285,6 @@ 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/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/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 -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc/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/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/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/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/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 @@ -5307,6 +5297,28 @@ 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/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/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/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/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 +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/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/ilo/test_console.py to test_console.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_firmware_processor.py to test_firmware_processor.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_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/ilo/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/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/__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 @@ -5326,43 +5338,32 @@ 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/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 -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/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/ilo/test_console.py to test_console.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_firmware_processor.py to test_firmware_processor.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_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/ilo/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/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/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/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/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 +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc/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/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/__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 +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_fake_hardware.py to test_fake_hardware.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_generic.py to test_generic.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_ibmc.py to test_ibmc.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_ilo.py to test_ilo.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_ipmi.py to test_ipmi.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_irmc.py to test_irmc.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_redfish.py to test_redfish.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/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/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/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/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 @@ -5381,6 +5382,41 @@ 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/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 +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_collection.py to test_collection.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_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/api/controllers/v1/test_deploy_template.py to test_deploy_template.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_driver.py to test_driver.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_event.py to test_event.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_node.py to test_node.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_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/api/controllers/v1/test_port.py to test_port.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_portgroup.py to test_portgroup.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_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/api/controllers/v1/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/controllers/v1/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/api/controllers/v1/test_versions.py to test_versions.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.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/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 +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_audit.py to test_audit.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_functions.py to test_functions.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_healthcheck.py to test_healthcheck.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_hooks.py to test_hooks.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_method.py to test_method.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_middleware.py to test_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_ospmiddleware.py to test_ospmiddleware.cpython-311.pyc +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/functional/__init__.py to __init__.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,598 +5442,549 @@ + 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.*)) ++ PYTHON=python3.11 + subunit2pyunit -2024-01-05 22:55:32.147 1479384 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2024-01-05 22:55:32.152 1479337 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2024-01-05 22:55:32.167 1479412 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2024-01-05 22:55:32.163 1479346 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2024-01-05 22:55:32.182 1479404 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2024-01-05 22:55:32.175 1479326 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2024-01-05 22:55:32.186 1479456 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2024-01-05 22:55:32.172 1479440 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2024-01-05 22:55:32.160 1479354 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2024-01-05 22:55:32.195 1479321 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2024-01-05 22:55:32.190 1479323 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2024-01-05 22:55:32.179 1479391 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2024-01-05 22:56:35.308 1479323 INFO alembic.runtime.migration [None req-be66cdf1-4f1d-49aa-a661-6c97dacaae72 - - - - - -] Context impl SQLiteImpl. -2024-01-05 22:56:35.309 1479323 INFO alembic.runtime.migration [None req-be66cdf1-4f1d-49aa-a661-6c97dacaae72 - - - - - -] 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 -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.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_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_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.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_ramdisk.TestHeartbeatScopedRBAC.test_ok_by_name -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_by_name ... 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_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_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_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 -2024-01-05 22:56:41.350 1479354 INFO alembic.runtime.migration [None req-6e46009a-4d9c-49c9-8165-d15970e5479c - - - - - -] Context impl SQLiteImpl. -2024-01-05 22:56:41.351 1479354 INFO alembic.runtime.migration [None req-6e46009a-4d9c-49c9-8165-d15970e5479c - - - - - -] Will assume non-transactional DDL. -2024-01-05 22:56:41.383 1479321 INFO alembic.runtime.migration [None req-b9ea058f-700a-4723-84bc-e032e3c9d55e - - - - - -] Context impl SQLiteImpl. -2024-01-05 22:56:41.384 1479321 INFO alembic.runtime.migration [None req-b9ea058f-700a-4723-84bc-e032e3c9d55e - - - - - -] Will assume non-transactional DDL. -2024-01-05 22:56:41.439 1479326 INFO alembic.runtime.migration [None req-e3c3b005-d3eb-4c1d-a000-1e9b98aa6500 - - - - - -] Context impl SQLiteImpl. -2024-01-05 22:56:41.440 1479326 INFO alembic.runtime.migration [None req-e3c3b005-d3eb-4c1d-a000-1e9b98aa6500 - - - - - -] Will assume non-transactional DDL. -2024-01-05 22:56:41.447 1479337 INFO alembic.runtime.migration [None req-09f35269-a1ab-4cd4-8dd4-2df8963e5b4e - - - - - -] Context impl SQLiteImpl. -2024-01-05 22:56:41.448 1479337 INFO alembic.runtime.migration [None req-09f35269-a1ab-4cd4-8dd4-2df8963e5b4e - - - - - -] Will assume non-transactional DDL. -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_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_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 -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. -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_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_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 -2024-01-05 22:56:41.772 1479391 INFO alembic.runtime.migration [None req-d06ffc87-de45-41b6-8258-5fb99f5fc57f - - - - - -] Context impl SQLiteImpl. -2024-01-05 22:56:41.773 1479391 INFO alembic.runtime.migration [None req-d06ffc87-de45-41b6-8258-5fb99f5fc57f - - - - - -] Will assume non-transactional DDL. -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_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_version_error -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_version_error ... 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.TestVendorPassthru.test_check_policy_forbidden -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy_forbidden ... ok -2024-01-05 22:56:41.843 1479404 INFO alembic.runtime.migration [None req-b6f3e205-e840-4332-b5fa-dfb85ea9b553 - - - - - -] Context impl SQLiteImpl. -2024-01-05 22:56:41.844 1479404 INFO alembic.runtime.migration [None req-b6f3e205-e840-4332-b5fa-dfb85ea9b553 - - - - - -] Will assume non-transactional DDL. -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 -2024-01-05 22:56:41.869 1479412 INFO alembic.runtime.migration [None req-dc2131d6-91eb-4610-ba3a-48fb8025ad92 - - - - - -] Context impl SQLiteImpl. -2024-01-05 22:56:41.869 1479412 INFO alembic.runtime.migration [None req-dc2131d6-91eb-4610-ba3a-48fb8025ad92 - - - - - -] Will assume non-transactional DDL. -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 -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -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 -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -2024-01-05 22:56:41.900 1479456 INFO alembic.runtime.migration [None req-c2f54d14-bea6-44f1-b918-391194ecc253 - - - - - -] Context impl SQLiteImpl. -2024-01-05 22:56:41.901 1479456 INFO alembic.runtime.migration [None req-c2f54d14-bea6-44f1-b918-391194ecc253 - - - - - -] Will assume non-transactional DDL. -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 -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-05 22:56:41.941 1479384 INFO alembic.runtime.migration [None req-27d20851-39d5-4f97-ae10-10a31e22b658 - - - - - -] Context impl SQLiteImpl. -2024-01-05 22:56:41.942 1479384 INFO alembic.runtime.migration [None req-27d20851-39d5-4f97-ae10-10a31e22b658 - - - - - -] Will assume non-transactional DDL. -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_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_utils.TestVendorPassthru.test_vendor_passthru_async -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async ... 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 -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve ... ok -2024-01-05 22:56:41.996 1479440 INFO alembic.runtime.migration [None req-2c3bf3a0-b598-44fe-b906-5fec00475a93 - - - - - -] Context impl SQLiteImpl. -2024-01-05 22:56:41.996 1479440 INFO alembic.runtime.migration [None req-2c3bf3a0-b598-44fe-b906-5fec00475a93 - - - - - -] Will assume non-transactional DDL. -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 -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_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_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.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_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_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_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_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 -2024-01-05 22:56:42.115 1479346 INFO alembic.runtime.migration [None req-7a267468-d1d5-470f-a479-849b905c1b61 - - - - - -] Context impl SQLiteImpl. -2024-01-05 22:56:42.116 1479346 INFO alembic.runtime.migration [None req-7a267468-d1d5-470f-a479-849b905c1b61 - - - - - -] Will assume non-transactional DDL. -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 ++ 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.*))' +2025-02-08 07:32:04.180 3861456 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2025-02-08 07:32:05.618 3861543 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2025-02-08 07:32:07.297 3861502 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2025-02-08 07:32:07.863 3861438 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2025-02-08 07:32:07.877 3861579 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2025-02-08 07:32:07.885 3861591 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2025-02-08 07:32:07.899 3861421 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2025-02-08 07:32:07.952 3861617 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2025-02-08 07:32:08.362 3861431 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2025-02-08 07:32:08.364 3861413 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2025-02-08 07:32:08.373 3861524 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2025-02-08 07:32:08.376 3861447 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2025-02-08 07:32:44.824 3861456 INFO alembic.runtime.migration [None req-2dc4ab1f-867a-45b8-9a97-cfe7bfb6dfaf - - - - - -] Context impl SQLiteImpl. +2025-02-08 07:32:44.825 3861456 INFO alembic.runtime.migration [None req-2dc4ab1f-867a-45b8-9a97-cfe7bfb6dfaf - - - - - -] 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_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.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 -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_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.test_base.TestVersion.test_equals ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals ... ok -INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 -INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 -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 -INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 -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.test_base.TestVersion.test_greaterthan ironic.tests.unit.api.controllers.test_base.TestVersion.test_greaterthan ... 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_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.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_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.TestPost.test_backfill -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill ... 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.test_base.TestVersion.test_init ironic.tests.unit.api.controllers.test_base.TestVersion.test_init ... 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.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_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_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_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_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.test_base.TestVersion.test_lessthan ironic.tests.unit.api.controllers.test_base.TestVersion.test_lessthan ... 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.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_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_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_chassis.TestDelete.test_delete_chassis_with_node -ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node ... ok -INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 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_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_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.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_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_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_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_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_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.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_conductor.TestListConductors.test_empty -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_empty ... 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_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_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_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_allocation.TestDelete.test_delete_allocation_by_id -ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_id ... 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_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.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_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.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_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_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_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_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.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_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.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_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_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_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_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.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.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_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_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_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_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_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_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.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_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_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_chassis.TestListChassis.test_detail -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail ... 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_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.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_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_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.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.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_repr_with_strings ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings ... ok -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_conductor.TestListConductors.test_get_one_custom_fields -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_custom_fields ... ok -PATCH: /v1/allocations/620214fa-64e6-4bdf-bf2b-5d41e9c60d51 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +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 +2025-02-08 07:32:47.774 3861543 INFO alembic.runtime.migration [None req-773fd582-c0cd-45e9-a029-0949ed66f88c - - - - - -] Context impl SQLiteImpl. +2025-02-08 07:32:47.775 3861543 INFO alembic.runtime.migration [None req-773fd582-c0cd-45e9-a029-0949ed66f88c - - - - - -] Will assume non-transactional DDL. +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 +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_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.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 +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-b3b2526c-1f7b-4a94-b772-6370b80e79be +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'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6b50311e-d024-4c1f-a691-411a94bf2a07 +Openstack-Request-Id: req-a5dda3c2-a2f6-4306-9830-c65c863e7a90 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "620214fa-64e6-4bdf-bf2b-5d41e9c60d51", "created_at": "2024-01-06T10:56:42.222170+00:00", "updated_at": "2024-01-06T10:56:42.243253+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/620214fa-64e6-4bdf-bf2b-5d41e9c60d51", "rel": "self"}, {"href": "http://localhost/allocations/620214fa-64e6-4bdf-bf2b-5d41e9c60d51", "rel": "bookmark"}], "node_uuid": null} -PATCH: /v1/allocations/436d17d7-d1eb-4c97-8bec-0681731b7161 [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:32:47.841731+00:00", "updated_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 -Openstack-Request-Id: req-d50a732e-2be0-46f3-bd51-646c336d2b43 +Openstack-Request-Id: req-5754d246-66ae-4c7c-a940-866616c7d0f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "436d17d7-d1eb-4c97-8bec-0681731b7161", "created_at": "2024-01-06T10:56:42.304175+00:00", "updated_at": "2024-01-06T10:56:42.323705+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/436d17d7-d1eb-4c97-8bec-0681731b7161", "rel": "self"}, {"href": "http://localhost/allocations/436d17d7-d1eb-4c97-8bec-0681731b7161", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/436d17d7-d1eb-4c97-8bec-0681731b7161 {} -GOT:{'uuid': '436d17d7-d1eb-4c97-8bec-0681731b7161', 'created_at': '2024-01-06T10:56:42.304175+00:00', 'updated_at': '2024-01-06T10:56:42.323705+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/436d17d7-d1eb-4c97-8bec-0681731b7161', 'rel': 'self'}, {'href': 'http://localhost/allocations/436d17d7-d1eb-4c97-8bec-0681731b7161', 'rel': 'bookmark'}], 'node_uuid': None} -PATCH: /v1/allocations/68a60d3a-fcf7-402f-a75a-ce9314470119 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:32:47.971918+00:00", "updated_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-a02ad314-6fd5-4dee-8ad5-112f18227c7e +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-07T17:32:48.091380+00:00", "updated_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 Content-Type: application/json -Openstack-Request-Id: req-6d11f52b-6087-4866-930f-e8b6f1c87d17 +Openstack-Request-Id: req-cc2384c0-46b1-4f76-9f75-39db7beb8f2d X-Openstack-Ironic-Api-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/244c224f-3543-42e4-83c3-4209c7a82edf [{'path': '/extra/foo2', 'op': 'remove'}] -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/cea522b4-3e26-4391-91ae-016922af8ccb [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-2c7064c3-224f-4ba4-aff0-fbb7c6f718b8 +Openstack-Request-Id: req-e7f433b8-b42e-46cf-96c3-c5005c05c1f1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "244c224f-3543-42e4-83c3-4209c7a82edf", "created_at": "2024-01-06T10:56:42.517221+00:00", "updated_at": "2024-01-06T10:56:42.548558+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/244c224f-3543-42e4-83c3-4209c7a82edf", "rel": "self"}, {"href": "http://localhost/allocations/244c224f-3543-42e4-83c3-4209c7a82edf", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/244c224f-3543-42e4-83c3-4209c7a82edf {} -GOT:{'uuid': '244c224f-3543-42e4-83c3-4209c7a82edf', 'created_at': '2024-01-06T10:56:42.517221+00:00', 'updated_at': '2024-01-06T10:56:42.548558+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/244c224f-3543-42e4-83c3-4209c7a82edf', 'rel': 'self'}, {'href': 'http://localhost/allocations/244c224f-3543-42e4-83c3-4209c7a82edf', 'rel': 'bookmark'}], 'node_uuid': None} -PATCH: /v1/allocations/244c224f-3543-42e4-83c3-4209c7a82edf [{'path': '/extra', 'op': 'remove'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node cea522b4-3e26-4391-91ae-016922af8ccb can not be updated while a state transition is in progress.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/0faefad2-09e5-41d8-9690-5fe7b825106c [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +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.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 GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7d2657f8-35df-4bc9-95d7-e561fd4fd891 +Openstack-Request-Id: req-aa3caea9-4807-4cc5-974e-9515ad347919 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "244c224f-3543-42e4-83c3-4209c7a82edf", "created_at": "2024-01-06T10:56:42.517221+00:00", "updated_at": "2024-01-06T10:56:42.578542+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/244c224f-3543-42e4-83c3-4209c7a82edf", "rel": "self"}, {"href": "http://localhost/allocations/244c224f-3543-42e4-83c3-4209c7a82edf", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/244c224f-3543-42e4-83c3-4209c7a82edf {} -GOT:{'uuid': '244c224f-3543-42e4-83c3-4209c7a82edf', 'created_at': '2024-01-06T10:56:42.517221+00:00', 'updated_at': '2024-01-06T10:56:42.578542+00:00', 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/244c224f-3543-42e4-83c3-4209c7a82edf', 'rel': 'self'}, {'href': 'http://localhost/allocations/244c224f-3543-42e4-83c3-4209c7a82edf', 'rel': 'bookmark'}], 'node_uuid': None} -PATCH: /v1/allocations/956c33df-270a-48e2-baff-8de8da86c119 [{'path': '/extra/non-existent', 'op': 'remove'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "0faefad2-09e5-41d8-9690-5fe7b825106c", "created_at": "2025-02-07T17:32:48.333133+00:00", "updated_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/0faefad2-09e5-41d8-9690-5fe7b825106c", "rel": "self"}, {"href": "http://localhost/nodes/0faefad2-09e5-41d8-9690-5fe7b825106c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/0faefad2-09e5-41d8-9690-5fe7b825106c/ports", "rel": "self"}, {"href": "http://localhost/nodes/0faefad2-09e5-41d8-9690-5fe7b825106c/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-553af7d3-6d7b-475f-a39c-cb3790a3f36d +Openstack-Request-Id: req-be341655-779e-4427-ac9b-62e6333ac7e0 X-Openstack-Ironic-Api-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/b9e1b16a-f06d-4922-a459-a1470f39fdf0 [{'path': '/extra/a', 'op': 'remove'}] +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-b06010ff-8fca-4cd9-a211-176b535ac907 +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-31fccdce-40e8-4e21-b27c-b9540c1b1eb3 +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-be7541a4-8c9b-476e-9b69-06a4813a3ba0 +Openstack-Request-Id: req-1178a442-5c17-49fb-a78d-8fd2bfcb10bf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "b9e1b16a-f06d-4922-a459-a1470f39fdf0", "created_at": "2024-01-06T10:56:42.771197+00:00", "updated_at": "2024-01-06T10:56:42.790827+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/b9e1b16a-f06d-4922-a459-a1470f39fdf0", "rel": "self"}, {"href": "http://localhost/allocations/b9e1b16a-f06d-4922-a459-a1470f39fdf0", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/b9e1b16a-f06d-4922-a459-a1470f39fdf0 {} -GOT:{'uuid': 'b9e1b16a-f06d-4922-a459-a1470f39fdf0', 'created_at': '2024-01-06T10:56:42.771197+00:00', 'updated_at': '2024-01-06T10:56:42.790827+00:00', 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/b9e1b16a-f06d-4922-a459-a1470f39fdf0', 'rel': 'self'}, {'href': 'http://localhost/allocations/b9e1b16a-f06d-4922-a459-a1470f39fdf0', 'rel': 'bookmark'}], 'node_uuid': None} -PATCH: /v1/allocations/0467362c-5a90-4ede-abd3-6678eeb4863a [{'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 -INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 -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_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_allocation.TestPatch.test_replace_invalid_name -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_invalid_name ... ok -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '5f79a062-0894-46ac-81cf-db67fecaf805', 'owner': None, 'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.5 +{"uuid": "deadbeef-0000-1111-2222-333333333333", "created_at": "2025-02-07T17:32:48.633230+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 -Location: http://localhost/v1/allocations/5f79a062-0894-46ac-81cf-db67fecaf805 -Openstack-Request-Id: req-bf9ec8e9-7adf-4404-988b-8e2f38bcac15 +Openstack-Request-Id: req-7fa1ab2a-afa6-40da-9b4e-4f7d513da71b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5f79a062-0894-46ac-81cf-db67fecaf805", "created_at": "2024-01-06T10:56:42.255245+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/5f79a062-0894-46ac-81cf-db67fecaf805", "rel": "self"}, {"href": "http://localhost/allocations/5f79a062-0894-46ac-81cf-db67fecaf805", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -GET: /v1/allocations/5f79a062-0894-46ac-81cf-db67fecaf805 {} -GOT:{'uuid': '5f79a062-0894-46ac-81cf-db67fecaf805', 'created_at': '2024-01-06T10:56:42.255245+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/5f79a062-0894-46ac-81cf-db67fecaf805', 'rel': 'self'}, {'href': 'http://localhost/allocations/5f79a062-0894-46ac-81cf-db67fecaf805', '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.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 -Location: http://localhost/v1/allocations/d01bcafa-a795-453d-b10a-35786f525f42 -Openstack-Request-Id: req-2c3328f9-6e91-4ac4-9b22-f22c89df8862 +Openstack-Request-Id: req-08a307e7-a054-437c-b495-9d4602f4a6af X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "d01bcafa-a795-453d-b10a-35786f525f42", "created_at": "2024-01-06T10:56:42.349263+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/d01bcafa-a795-453d-b10a-35786f525f42", "rel": "self"}, {"href": "http://localhost/allocations/d01bcafa-a795-453d-b10a-35786f525f42", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -GET: /v1/allocations/d01bcafa-a795-453d-b10a-35786f525f42 {} -GOT:{'uuid': 'd01bcafa-a795-453d-b10a-35786f525f42', 'created_at': '2024-01-06T10:56:42.349263+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/d01bcafa-a795-453d-b10a-35786f525f42', 'rel': 'self'}, {'href': 'http://localhost/allocations/d01bcafa-a795-453d-b10a-35786f525f42', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '89acba7d-5e44-4a81-a7aa-ecb2f1df5649', 'owner': None, 'node': '6e5ebba7-3ea0-4588-807a-c97aa045442d'} +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-b3c3ccf6-33af-4a38-802d-973e032824f5 +Openstack-Request-Id: req-6cff8b04-46eb-4a87-9331-98f619cd35e2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 6e5ebba7-3ea0-4588-807a-c97aa045442d could not be found.\", \"debuginfo\": null}"} -POST: /v1/allocations {'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +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'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-bc537b60-3cd1-433a-a2b0-e917ffdb8f7c +Openstack-Request-Id: req-97975f4a-5bd4-4d03-96e1-ee7e8db5ad18 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': '1880bdcc-05ee-4032-84c1-84064e83a753', 'owner': None, 'node': 'backfill-me'} -GOT:Response: 201 Created +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 -Location: http://localhost/v1/allocations/1880bdcc-05ee-4032-84c1-84064e83a753 -Openstack-Request-Id: req-8f46c6a5-28f8-4fa2-84f5-396a9c64975d +Openstack-Request-Id: req-8bf79994-1959-4bcb-b274-b246189fe34c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1880bdcc-05ee-4032-84c1-84064e83a753", "created_at": "2024-01-06T10:56:42.671512+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/1880bdcc-05ee-4032-84c1-84064e83a753", "rel": "self"}, {"href": "http://localhost/allocations/1880bdcc-05ee-4032-84c1-84064e83a753", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -GET: /v1/allocations/1880bdcc-05ee-4032-84c1-84064e83a753 {} -GOT:{'uuid': '1880bdcc-05ee-4032-84c1-84064e83a753', 'created_at': '2024-01-06T10:56:42.671512+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/1880bdcc-05ee-4032-84c1-84064e83a753', 'rel': 'self'}, {'href': 'http://localhost/allocations/1880bdcc-05ee-4032-84c1-84064e83a753', '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.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 -Location: http://localhost/v1/allocations/69d34c52-3935-4bf2-b427-825634b4f3ee -Openstack-Request-Id: req-8a974473-4901-4fb0-928b-9d26834d6d6f +Openstack-Request-Id: req-e820d8d0-f2a6-4ed8-99ea-e6f5b69d3a61 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "69d34c52-3935-4bf2-b427-825634b4f3ee", "created_at": "2024-01-06T10:56:42.785057+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/69d34c52-3935-4bf2-b427-825634b4f3ee", "rel": "self"}, {"href": "http://localhost/allocations/69d34c52-3935-4bf2-b427-825634b4f3ee", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -GET: /v1/allocations/69d34c52-3935-4bf2-b427-825634b4f3ee {} -GOT:{'uuid': '69d34c52-3935-4bf2-b427-825634b4f3ee', 'created_at': '2024-01-06T10:56:42.785057+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/69d34c52-3935-4bf2-b427-825634b4f3ee', 'rel': 'self'}, {'href': 'http://localhost/allocations/69d34c52-3935-4bf2-b427-825634b4f3ee', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '855f4d97-74a3-45c5-aed8-98fdb4f4c718', '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.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_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.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.TestBIOS.test_get_bios_detail_and_fields -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_detail_and_fields ... ok -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'} +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}"} +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 +INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 +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.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_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_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_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.TestLookupScopedRBAC.test_found_by_only_uuid +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_only_uuid ... ok +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-aaf95148-7d90-40eb-9ba6-8f04d63c050d +Openstack-Request-Id: req-230e80c9-0a66-4e0c-bd2f-7777f38cf5f2 X-Openstack-Ironic-Api-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'} +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/14152cf7-3e22-4d28-a5f3-216f4befabf6 [{'path': '/allocation_uuid', 'op': 'replace', 'value': '9b57945e-3a8b-4865-81ee-d23cb8d99d85'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-0e62aee4-4b47-4280-93e3-f40a462114a8 +Openstack-Request-Id: req-ce2687ff-559c-4fd2-ab5d-26b26d4cc1bb X-Openstack-Ironic-Api-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/315d4fb6-684b-4965-a69c-6146b4e22016 {'callback_url': 'url'} -GOT:Response: 404 Not Found +{"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/a0fb6c2a-080b-4d2a-9d5c-0b5a8070b0bd [{'path': '/allocation_uuid', 'op': 'replace', 'value': 'b080bab0-613b-48ad-a76f-f6a093ab8aeb'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-db1d6adf-d1ad-4762-95ec-6032b540824f +Openstack-Request-Id: req-6f40a932-9ca3-4e40-82cf-d42ad890581f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 315d4fb6-684b-4965-a69c-6146b4e22016 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-6fd597ef-9ddc-41bc-8470-0706d8e51ff2 +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/a759c844-b11d-42ae-a015-a6c508ef752a [{'path': '/conductor', 'op': 'replace', 'value': 'why care'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-a470a01a-081c-4b6c-b22c-3845d0dcba5e 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-376c0e0d-c6c1-46de-aff9-95c5bf5a2cd6 +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/ffdc2082-37b1-4553-985a-6dde68667c47 [{'path': '/deploy_step', 'op': 'replace', 'value': 'deploy this'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-e43a367e-2a00-462e-8a0d-56274d9d4ffa 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-2417f36a-ab8d-42e1-9bea-b7bfda9fdc40 +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/67f25aa1-512b-4e13-9f40-d2a5ab3359e6 [{'path': '/name', 'op': 'replace', 'value': 'this-is-my-node'}] +GOT:Response: 409 Conflict +Content-Type: application/json +Openstack-Request-Id: req-46e35d0c-2c5f-4fd5-aa5f-393f47ed0af7 +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/2e750c73-1ccb-464b-b1a5-7a491721fb8e [{'path': '/fault', 'op': 'replace', 'value': 'why care'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-7edc32ec-4ae3-4c09-a206-ed6754ba6db2 +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'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-f7b4301a-4903-45a2-b8ff-0e376f6c6c71 +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-07T17:32:49.465484+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'}] +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.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_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_ramdisk.TestLookupScopedRBAC.test_ignore_malformed_address +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_ignore_malformed_address ... 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.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 +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-15c80f7e-b320-4084-9bb9-f257baa91676 +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-07T17:32:49.630477+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/fe3b27a4-34f3-4902-afaa-ec319bec87ff [{'path': '/description', 'value': 'foo', 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-f2282c7f-7f28-466c-beff-2a63ba425e6f 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-7faf5c67-5559-490c-996d-1f4a3be3f1b9 +{"uuid": "fe3b27a4-34f3-4902-afaa-ec319bec87ff", "created_at": "2025-02-07T17:32:49.813305+00:00", "updated_at": null, "automated_clean": null, "bios_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/fe3b27a4-34f3-4902-afaa-ec319bec87ff", "rel": "self"}, {"href": "http://localhost/nodes/fe3b27a4-34f3-4902-afaa-ec319bec87ff", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fe3b27a4-34f3-4902-afaa-ec319bec87ff/ports", "rel": "self"}, {"href": "http://localhost/nodes/fe3b27a4-34f3-4902-afaa-ec319bec87ff/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fe3b27a4-34f3-4902-afaa-ec319bec87ff/states", "rel": "self"}, {"href": "http://localhost/nodes/fe3b27a4-34f3-4902-afaa-ec319bec87ff/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fe3b27a4-34f3-4902-afaa-ec319bec87ff/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fe3b27a4-34f3-4902-afaa-ec319bec87ff/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fe3b27a4-34f3-4902-afaa-ec319bec87ff/volume", "rel": "self"}, {"href": "http://localhost/nodes/fe3b27a4-34f3-4902-afaa-ec319bec87ff/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/5157d230-76d3-411f-9d51-c51fc090482f [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-87d663f9-90c7-4d2a-9986-3dd0aed26419 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-4313d7fb-af7a-422f-acde-0a190a951941 +{"uuid": "5157d230-76d3-411f-9d51-c51fc090482f", "created_at": "2025-02-07T17:32:50.005410+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/5157d230-76d3-411f-9d51-c51fc090482f", "rel": "self"}, {"href": "http://localhost/nodes/5157d230-76d3-411f-9d51-c51fc090482f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5157d230-76d3-411f-9d51-c51fc090482f/ports", "rel": "self"}, {"href": "http://localhost/nodes/5157d230-76d3-411f-9d51-c51fc090482f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5157d230-76d3-411f-9d51-c51fc090482f/states", "rel": "self"}, {"href": "http://localhost/nodes/5157d230-76d3-411f-9d51-c51fc090482f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5157d230-76d3-411f-9d51-c51fc090482f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5157d230-76d3-411f-9d51-c51fc090482f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5157d230-76d3-411f-9d51-c51fc090482f/volume", "rel": "self"}, {"href": "http://localhost/nodes/5157d230-76d3-411f-9d51-c51fc090482f/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/23934be1-4f83-44e1-b329-71dcce74c6d7 [{'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_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.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 +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=608506ce-53a5-4d09-a741-434e659d42fa {} +GOT:{'node': {'uuid': '608506ce-53a5-4d09-a741-434e659d42fa', '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/608506ce-53a5-4d09-a741-434e659d42fa', 'rel': 'self'}, {'href': 'http://localhost/nodes/608506ce-53a5-4d09-a741-434e659d42fa', '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=608506ce-53a5-4d09-a741-434e659d42fa {} +GOT:{'node': {'uuid': '608506ce-53a5-4d09-a741-434e659d42fa', '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/608506ce-53a5-4d09-a741-434e659d42fa', 'rel': 'self'}, {'href': 'http://localhost/nodes/608506ce-53a5-4d09-a741-434e659d42fa', '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=608506ce-53a5-4d09-a741-434e659d42fa {} +GOT:{'node': {'uuid': '608506ce-53a5-4d09-a741-434e659d42fa', '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/608506ce-53a5-4d09-a741-434e659d42fa', 'rel': 'self'}, {'href': 'http://localhost/nodes/608506ce-53a5-4d09-a741-434e659d42fa', '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': '23cec395-b1b8-4f9a-9a14-be480623bb66', '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/23cec395-b1b8-4f9a-9a14-be480623bb66', 'rel': 'self'}, {'href': 'http://localhost/nodes/23cec395-b1b8-4f9a-9a14-be480623bb66', '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=5e52f627-d5d9-4102-8c6a-a55cfb55ba41 {} +GOT:{'node': {'uuid': '5e52f627-d5d9-4102-8c6a-a55cfb55ba41', '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/5e52f627-d5d9-4102-8c6a-a55cfb55ba41', 'rel': 'self'}, {'href': 'http://localhost/nodes/5e52f627-d5d9-4102-8c6a-a55cfb55ba41', '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=27fdf55c-7a30-4718-a393-68a3db4371b8 {} +GOT:{'node': {'uuid': '27fdf55c-7a30-4718-a393-68a3db4371b8', '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/27fdf55c-7a30-4718-a393-68a3db4371b8', 'rel': 'self'}, {'href': 'http://localhost/nodes/27fdf55c-7a30-4718-a393-68a3db4371b8', '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': 'ef89fcac-384d-4b91-8a73-d7bdbdb93c50', '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/ef89fcac-384d-4b91-8a73-d7bdbdb93c50', 'rel': 'self'}, {'href': 'http://localhost/nodes/ef89fcac-384d-4b91-8a73-d7bdbdb93c50', '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=d0f128a4-1ba1-411d-bd24-500fdb2fa3f4 {} +GOT:{'node': {'uuid': 'd0f128a4-1ba1-411d-bd24-500fdb2fa3f4', '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/d0f128a4-1ba1-411d-bd24-500fdb2fa3f4', 'rel': 'self'}, {'href': 'http://localhost/nodes/d0f128a4-1ba1-411d-bd24-500fdb2fa3f4', '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-c3212e08-328a-466b-8c69-dfaefcaf6d2a 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-9ae1e36a-4138-4e44-8d0b-56c230f84a04 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/lookup {} +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 +2025-02-08 07:32:50.946 3861438 INFO alembic.runtime.migration [None req-8b32077a-15ca-439a-b628-389db07c56a3 - - - - - -] Context impl SQLiteImpl. +2025-02-08 07:32:50.947 3861438 INFO alembic.runtime.migration [None req-8b32077a-15ca-439a-b628-389db07c56a3 - - - - - -] Will assume non-transactional DDL. +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 +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-93d2885a-aa10-4d23-a4bc-fd443a45ccfa 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-5b719baa-b681-4f46-8d53-a6dcbb9cb4e5 +{"uuid": "23934be1-4f83-44e1-b329-71dcce74c6d7", "created_at": "2025-02-07T17:32:50.214744+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/23934be1-4f83-44e1-b329-71dcce74c6d7", "rel": "self"}, {"href": "http://localhost/nodes/23934be1-4f83-44e1-b329-71dcce74c6d7", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/23934be1-4f83-44e1-b329-71dcce74c6d7/ports", "rel": "self"}, {"href": "http://localhost/nodes/23934be1-4f83-44e1-b329-71dcce74c6d7/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/23934be1-4f83-44e1-b329-71dcce74c6d7/states", "rel": "self"}, {"href": "http://localhost/nodes/23934be1-4f83-44e1-b329-71dcce74c6d7/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/23934be1-4f83-44e1-b329-71dcce74c6d7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/23934be1-4f83-44e1-b329-71dcce74c6d7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/23934be1-4f83-44e1-b329-71dcce74c6d7/volume", "rel": "self"}, {"href": "http://localhost/nodes/23934be1-4f83-44e1-b329-71dcce74c6d7/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/54a17cf2-b048-4e11-94b5-ac9b3467f7cd [{'path': '/description', 'value': 'foo', 'op': 'replace'}, {'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-0f1964b0-5d11-4cf7-8a46-4816417fc761 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 +{"uuid": "54a17cf2-b048-4e11-94b5-ac9b3467f7cd", "created_at": "2025-02-07T17:32:50.439221+00:00", "updated_at": null, "automated_clean": null, "bios_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/54a17cf2-b048-4e11-94b5-ac9b3467f7cd", "rel": "self"}, {"href": "http://localhost/nodes/54a17cf2-b048-4e11-94b5-ac9b3467f7cd", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/54a17cf2-b048-4e11-94b5-ac9b3467f7cd/ports", "rel": "self"}, {"href": "http://localhost/nodes/54a17cf2-b048-4e11-94b5-ac9b3467f7cd/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/54a17cf2-b048-4e11-94b5-ac9b3467f7cd/states", "rel": "self"}, {"href": "http://localhost/nodes/54a17cf2-b048-4e11-94b5-ac9b3467f7cd/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/54a17cf2-b048-4e11-94b5-ac9b3467f7cd/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/54a17cf2-b048-4e11-94b5-ac9b3467f7cd/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/54a17cf2-b048-4e11-94b5-ac9b3467f7cd/volume", "rel": "self"}, {"href": "http://localhost/nodes/54a17cf2-b048-4e11-94b5-ac9b3467f7cd/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/213ac4a6-86da-4e48-89af-e2f6914e74bc [{'path': '/description', 'value': 'foo', 'op': 'replace'}, {'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] +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_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 +2025-02-08 07:32:51.522 3861502 INFO alembic.runtime.migration [None req-ea2862e6-f9b4-4e5f-8c6f-e8167ee0e048 - - - - - -] Context impl SQLiteImpl. +2025-02-08 07:32:51.523 3861502 INFO alembic.runtime.migration [None req-ea2862e6-f9b4-4e5f-8c6f-e8167ee0e048 - - - - - -] Will assume non-transactional DDL. +2025-02-08 07:32:51.550 3861421 INFO alembic.runtime.migration [None req-5fcbed83-8488-4cd8-997e-601cf7cf236a - - - - - -] Context impl SQLiteImpl. +2025-02-08 07:32:51.551 3861421 INFO alembic.runtime.migration [None req-5fcbed83-8488-4cd8-997e-601cf7cf236a - - - - - -] Will assume non-transactional DDL. +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 +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_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.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 +2025-02-08 07:32:52.015 3861591 INFO alembic.runtime.migration [None req-5c5d4668-7d44-4ca1-bceb-7c1f216efa3d - - - - - -] Context impl SQLiteImpl. +2025-02-08 07:32:52.016 3861591 INFO alembic.runtime.migration [None req-5c5d4668-7d44-4ca1-bceb-7c1f216efa3d - - - - - -] Will assume non-transactional DDL. +2025-02-08 07:32:52.033 3861617 INFO alembic.runtime.migration [None req-166e70ad-bfbe-47f8-bb56-f08bdee5cdae - - - - - -] Context impl SQLiteImpl. +2025-02-08 07:32:52.034 3861617 INFO alembic.runtime.migration [None req-166e70ad-bfbe-47f8-bb56-f08bdee5cdae - - - - - -] Will assume non-transactional DDL. +2025-02-08 07:32:52.056 3861579 INFO alembic.runtime.migration [None req-4aef1e1f-b1fa-49d5-98a7-1d34f424c066 - - - - - -] Context impl SQLiteImpl. +2025-02-08 07:32:52.057 3861579 INFO alembic.runtime.migration [None req-4aef1e1f-b1fa-49d5-98a7-1d34f424c066 - - - - - -] 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. +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +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 +2025-02-08 07:32:52.293 3861431 INFO alembic.runtime.migration [None req-b2b3e62e-8bf1-40fa-8369-51813f730893 - - - - - -] Context impl SQLiteImpl. +2025-02-08 07:32:52.294 3861431 INFO alembic.runtime.migration [None req-b2b3e62e-8bf1-40fa-8369-51813f730893 - - - - - -] Will assume non-transactional DDL. +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d1a7c18e-d845-470e-bb5a-c053890de3ad +Openstack-Request-Id: req-4a0755b7-e3ce-437d-94f8-3eb947c1b0d9 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 +{"uuid": "213ac4a6-86da-4e48-89af-e2f6914e74bc", "created_at": "2025-02-07T17:32:50.882684+00:00", "updated_at": null, "automated_clean": null, "bios_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/213ac4a6-86da-4e48-89af-e2f6914e74bc", "rel": "self"}, {"href": "http://localhost/nodes/213ac4a6-86da-4e48-89af-e2f6914e74bc", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/213ac4a6-86da-4e48-89af-e2f6914e74bc/ports", "rel": "self"}, {"href": "http://localhost/nodes/213ac4a6-86da-4e48-89af-e2f6914e74bc/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/213ac4a6-86da-4e48-89af-e2f6914e74bc/states", "rel": "self"}, {"href": "http://localhost/nodes/213ac4a6-86da-4e48-89af-e2f6914e74bc/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/213ac4a6-86da-4e48-89af-e2f6914e74bc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/213ac4a6-86da-4e48-89af-e2f6914e74bc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/213ac4a6-86da-4e48-89af-e2f6914e74bc/volume", "rel": "self"}, {"href": "http://localhost/nodes/213ac4a6-86da-4e48-89af-e2f6914e74bc/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/54628094-013f-4711-9201-69ce4cb4349e [{'path': '/description', 'value': 'foo', 'op': 'replace'}, {'path': '/extra/foo', 'value': 'bar', 'op': 'add'}, {'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b42b8745-7fa5-4701-a1bd-4cf13f8cd968 +Openstack-Request-Id: req-3959f544-071a-4fe3-b296-4b6665bcf20f 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 +{"uuid": "54628094-013f-4711-9201-69ce4cb4349e", "created_at": "2025-02-07T17:32:51.692239+00:00", "updated_at": null, "automated_clean": null, "bios_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/54628094-013f-4711-9201-69ce4cb4349e", "rel": "self"}, {"href": "http://localhost/nodes/54628094-013f-4711-9201-69ce4cb4349e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/54628094-013f-4711-9201-69ce4cb4349e/ports", "rel": "self"}, {"href": "http://localhost/nodes/54628094-013f-4711-9201-69ce4cb4349e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/54628094-013f-4711-9201-69ce4cb4349e/states", "rel": "self"}, {"href": "http://localhost/nodes/54628094-013f-4711-9201-69ce4cb4349e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/54628094-013f-4711-9201-69ce4cb4349e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/54628094-013f-4711-9201-69ce4cb4349e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/54628094-013f-4711-9201-69ce4cb4349e/volume", "rel": "self"}, {"href": "http://localhost/nodes/54628094-013f-4711-9201-69ce4cb4349e/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/77e2d524-03c8-446a-b1b2-5cbd875db1b9 [{'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] +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_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_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_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_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 +/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.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_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_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_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_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 +2025-02-08 07:32:53.090 3861524 INFO alembic.runtime.migration [None req-37464085-6cf7-4b31-9403-52949fab3d65 - - - - - -] Context impl SQLiteImpl. +2025-02-08 07:32:53.091 3861524 INFO alembic.runtime.migration [None req-37464085-6cf7-4b31-9403-52949fab3d65 - - - - - -] Will assume non-transactional DDL. +INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 +/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_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_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.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 +/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_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_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.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 GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-5c18c4cc-8282-47b8-b884-e56513a068d3 +Openstack-Request-Id: req-c896498d-87cc-4ca1-9bba-4976a63db0df 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/628bb736-7e5d-4fce-9144-b30affdc67ce {'callback_url': 'url'} +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-fcbc04d8-a876-4439-a6f0-33844cd9fe86 +Openstack-Request-Id: req-0d5f10cb-45f7-48ed-8c75-97bcc4a9be36 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=339018c8-f97d-4073-b4f3-7e0e6c3c739c {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-4bcd8afd-14c6-43e3-8da2-3a93924019bd +X-Openstack-Ironic-Api-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/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-a0a8885c-c408-41c0-a58b-19a19b3c8a34 +Openstack-Request-Id: req-99a50614-b362-4acc-a3e4-b68f07aaed98 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -6005,687 +5992,913 @@ 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'} -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.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_driver.TestDriverProperties.test_driver_properties_cached -ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached ... 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_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_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_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.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_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.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_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_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_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_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.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_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_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_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.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_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_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_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_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_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_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_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_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_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_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_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_driver.TestDriverProperties.test_driver_properties_hw_type -ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_hw_type ... ok -DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -GOT:Response: 204 No Content -Openstack-Request-Id: req-aa4ed7f8-e89d-4173-827c-c915249d7104 +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-3f4fa036-43d3-40b1-b3ac-63af3d420614 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 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:32:51.845472+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-07T17:32:51.845472+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-97524a1e-0836-4839-8ea4-a96a984070d9 +Openstack-Request-Id: req-fddaaf7e-a72a-4e72-8602-084dee86f4e2 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/62dd5895-2af7-4dda-9595-a4382cf973fc +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/bc7ea021-583d-4359-af65-8a3b2ddc1cd5 +Openstack-Request-Id: req-0860e23e-faeb-496e-b599-fe9338d14612 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "bc7ea021-583d-4359-af65-8a3b2ddc1cd5", "created_at": "2025-02-07T17:32:52.457863+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/bc7ea021-583d-4359-af65-8a3b2ddc1cd5", "rel": "self"}, {"href": "http://localhost/volume/connectors/bc7ea021-583d-4359-af65-8a3b2ddc1cd5", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +GET: /v1/volume/connectors/bc7ea021-583d-4359-af65-8a3b2ddc1cd5 {} +GOT:{'uuid': 'bc7ea021-583d-4359-af65-8a3b2ddc1cd5', 'created_at': '2025-02-07T17:32:52.457863+00:00', 'updated_at': None, 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/bc7ea021-583d-4359-af65-8a3b2ddc1cd5', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/bc7ea021-583d-4359-af65-8a3b2ddc1cd5', '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 -Openstack-Request-Id: req-941782e9-e029-4f34-88e7-38c9106a2d42 +{"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-c32327e1-c9d3-4439-8224-3089166a34ab 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 62dd5895-2af7-4dda-9595-a4382cf973fc could not be found.\", \"debuginfo\": null}"} -DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +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-1c487267-773a-4e66-9056-cfec90670909 +Openstack-Request-Id: req-31b9906a-54eb-4f8c-bd8f-95214973375b 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 +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': {}} +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 +/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.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_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_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_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.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_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_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_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 +/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_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_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) +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.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_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_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.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_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 +INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 +INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 +/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] 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_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 +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 +/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.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_allocation.TestListAllocations.test_allocation_get_all_non_admin +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_non_admin ... ok +2025-02-08 07:32:54.321 3861447 INFO alembic.runtime.migration [None req-abcb8c83-3460-4cbc-9407-44271955da2f - - - - - -] Context impl SQLiteImpl. +2025-02-08 07:32:54.322 3861447 INFO alembic.runtime.migration [None req-abcb8c83-3460-4cbc-9407-44271955da2f - - - - - -] 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 +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 +/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) +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-e0714a8e-ccc4-47c8-b010-8610129695a2 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "77e2d524-03c8-446a-b1b2-5cbd875db1b9", "created_at": "2025-02-07T17:32:52.183783+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/77e2d524-03c8-446a-b1b2-5cbd875db1b9", "rel": "self"}, {"href": "http://localhost/nodes/77e2d524-03c8-446a-b1b2-5cbd875db1b9", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/77e2d524-03c8-446a-b1b2-5cbd875db1b9/ports", "rel": "self"}, {"href": "http://localhost/nodes/77e2d524-03c8-446a-b1b2-5cbd875db1b9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/77e2d524-03c8-446a-b1b2-5cbd875db1b9/states", "rel": "self"}, {"href": "http://localhost/nodes/77e2d524-03c8-446a-b1b2-5cbd875db1b9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/77e2d524-03c8-446a-b1b2-5cbd875db1b9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/77e2d524-03c8-446a-b1b2-5cbd875db1b9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/77e2d524-03c8-446a-b1b2-5cbd875db1b9/volume", "rel": "self"}, {"href": "http://localhost/nodes/77e2d524-03c8-446a-b1b2-5cbd875db1b9/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/487fd805-e430-4f89-bf0c-ff62beb97ea8 [] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-7543ac11-e2bc-435a-9935-8f596657be60 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "487fd805-e430-4f89-bf0c-ff62beb97ea8", "created_at": "2025-02-07T17:32:52.639034+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/487fd805-e430-4f89-bf0c-ff62beb97ea8", "rel": "self"}, {"href": "http://localhost/nodes/487fd805-e430-4f89-bf0c-ff62beb97ea8", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/487fd805-e430-4f89-bf0c-ff62beb97ea8/ports", "rel": "self"}, {"href": "http://localhost/nodes/487fd805-e430-4f89-bf0c-ff62beb97ea8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/487fd805-e430-4f89-bf0c-ff62beb97ea8/states", "rel": "self"}, {"href": "http://localhost/nodes/487fd805-e430-4f89-bf0c-ff62beb97ea8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/487fd805-e430-4f89-bf0c-ff62beb97ea8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/487fd805-e430-4f89-bf0c-ff62beb97ea8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/487fd805-e430-4f89-bf0c-ff62beb97ea8/volume", "rel": "self"}, {"href": "http://localhost/nodes/487fd805-e430-4f89-bf0c-ff62beb97ea8/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-8db38e66-9899-4056-8a1b-3a8a6715f31a +Openstack-Request-Id: req-a2f7e92f-cd46-4316-ae72-ca971f47091c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} -GET: /v1/chassis/?limit=3 {} -GOT:{'chassis': [{'uuid': '726317d5-7932-41ce-ac12-b37cb4227508', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/726317d5-7932-41ce-ac12-b37cb4227508', 'rel': 'self'}, {'href': 'http://localhost/chassis/726317d5-7932-41ce-ac12-b37cb4227508', 'rel': 'bookmark'}]}, {'uuid': 'eaa1930c-d216-4e75-9e0b-0628edf1c233', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/eaa1930c-d216-4e75-9e0b-0628edf1c233', 'rel': 'self'}, {'href': 'http://localhost/chassis/eaa1930c-d216-4e75-9e0b-0628edf1c233', 'rel': 'bookmark'}]}, {'uuid': 'b5213333-3593-47ae-9892-f331548ef9c2', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/b5213333-3593-47ae-9892-f331548ef9c2', 'rel': 'self'}, {'href': 'http://localhost/chassis/b5213333-3593-47ae-9892-f331548ef9c2', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=b5213333-3593-47ae-9892-f331548ef9c2'} -GET: /v1/chassis?fields=extra,uuid {} -GOT:{'chassis': [{'uuid': '028122e7-a7ec-434e-8b78-39915d843f46', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/028122e7-a7ec-434e-8b78-39915d843f46', 'rel': 'self'}, {'href': 'http://localhost/chassis/028122e7-a7ec-434e-8b78-39915d843f46', 'rel': 'bookmark'}]}, {'uuid': 'f7e046b7-88e1-44f7-948b-d1bf22d782cd', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/f7e046b7-88e1-44f7-948b-d1bf22d782cd', 'rel': 'self'}, {'href': 'http://localhost/chassis/f7e046b7-88e1-44f7-948b-d1bf22d782cd', 'rel': 'bookmark'}]}, {'uuid': '3caadd67-ab28-4e12-a521-f91a386ec038', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/3caadd67-ab28-4e12-a521-f91a386ec038', 'rel': 'self'}, {'href': 'http://localhost/chassis/3caadd67-ab28-4e12-a521-f91a386ec038', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra,uuid&limit=3&marker=3caadd67-ab28-4e12-a521-f91a386ec038'} -GET: /v1/chassis {} -GOT:{'chassis': [{'uuid': 'df1fe6eb-0e79-4c29-b980-618a792de91c', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/df1fe6eb-0e79-4c29-b980-618a792de91c', 'rel': 'self'}, {'href': 'http://localhost/chassis/df1fe6eb-0e79-4c29-b980-618a792de91c', 'rel': 'bookmark'}]}, {'uuid': '1b1fc9db-d3a7-43cc-a079-a83ad7f829c3', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/1b1fc9db-d3a7-43cc-a079-a83ad7f829c3', 'rel': 'self'}, {'href': 'http://localhost/chassis/1b1fc9db-d3a7-43cc-a079-a83ad7f829c3', 'rel': 'bookmark'}]}, {'uuid': '92cf7dcf-cfa8-4efb-9aae-db482b74c785', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/92cf7dcf-cfa8-4efb-9aae-db482b74c785', 'rel': 'self'}, {'href': 'http://localhost/chassis/92cf7dcf-cfa8-4efb-9aae-db482b74c785', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=92cf7dcf-cfa8-4efb-9aae-db482b74c785'} -GET: /v1/chassis/detail {} -GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2024-01-06T10:56:42.824281+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 +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-f3d2a13d-ab77-4a0e-9a85-b28ba75881b6 +Openstack-Request-Id: req-b78eb013-f21c-44ba-a096-3fa04a821adc 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': '2024-01-06T10:56:43.015748+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\": \"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-8f32b876-18ab-43d6-93cb-864c64ea5e3e +Openstack-Request-Id: req-3a1813aa-a86c-4c61-9c87-1b7dbcc7084f X-Openstack-Ironic-Api-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 {} -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_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_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_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_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_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_node.TestTraits.test_delete_all_traits_with_chassis -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_with_chassis ... ok -GET: /v1/conductors/?limit=3 {} -GOT:{'conductors': [{'hostname': 'd939ef0e-94a0-49ed-b323-06fa2867e47b', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/d939ef0e-94a0-49ed-b323-06fa2867e47b', 'rel': 'self'}, {'href': 'http://localhost/conductors/d939ef0e-94a0-49ed-b323-06fa2867e47b', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '8f35ef0b-017f-4fbc-a9e6-485ecaf7d6dc', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/8f35ef0b-017f-4fbc-a9e6-485ecaf7d6dc', 'rel': 'self'}, {'href': 'http://localhost/conductors/8f35ef0b-017f-4fbc-a9e6-485ecaf7d6dc', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'dafc3c25-0058-4746-82bf-bc50d0421c4a', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/dafc3c25-0058-4746-82bf-bc50d0421c4a', 'rel': 'self'}, {'href': 'http://localhost/conductors/dafc3c25-0058-4746-82bf-bc50d0421c4a', 'rel': 'bookmark'}], 'alive': True}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=dafc3c25-0058-4746-82bf-bc50d0421c4a'} -GET: /v1/conductors?fields=hostname,alive {} -GOT:{'conductors': [{'hostname': '176f39b2-e1d9-430a-b6b0-d7a2f967ea68', 'links': [{'href': 'http://localhost/v1/conductors/176f39b2-e1d9-430a-b6b0-d7a2f967ea68', 'rel': 'self'}, {'href': 'http://localhost/conductors/176f39b2-e1d9-430a-b6b0-d7a2f967ea68', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'f5811315-f7a6-44dd-a773-6a3438ada9dc', 'links': [{'href': 'http://localhost/v1/conductors/f5811315-f7a6-44dd-a773-6a3438ada9dc', 'rel': 'self'}, {'href': 'http://localhost/conductors/f5811315-f7a6-44dd-a773-6a3438ada9dc', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'b2b55f82-0b9e-456e-bb00-e73c9bf5f0f1', 'links': [{'href': 'http://localhost/v1/conductors/b2b55f82-0b9e-456e-bb00-e73c9bf5f0f1', 'rel': 'self'}, {'href': 'http://localhost/conductors/b2b55f82-0b9e-456e-bb00-e73c9bf5f0f1', 'rel': 'bookmark'}], 'alive': True}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,alive&limit=3&marker=b2b55f82-0b9e-456e-bb00-e73c9bf5f0f1'} -GET: /v1/conductors {} -GOT:{'conductors': [{'hostname': '9b53b470-0b03-4105-a90b-1089cceb500e', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/9b53b470-0b03-4105-a90b-1089cceb500e', 'rel': 'self'}, {'href': 'http://localhost/conductors/9b53b470-0b03-4105-a90b-1089cceb500e', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'd60c5d90-3907-46a6-b3f0-be0473151535', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/d60c5d90-3907-46a6-b3f0-be0473151535', 'rel': 'self'}, {'href': 'http://localhost/conductors/d60c5d90-3907-46a6-b3f0-be0473151535', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '1258f47b-e679-4752-8a0c-ae1555e4a2f5', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/1258f47b-e679-4752-8a0c-ae1555e4a2f5', 'rel': 'self'}, {'href': 'http://localhost/conductors/1258f47b-e679-4752-8a0c-ae1555e4a2f5', 'rel': 'bookmark'}], 'alive': True}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=1258f47b-e679-4752-8a0c-ae1555e4a2f5'} -GET: /v1/conductors {} -GOT:{'conductors': []} -GET: /v1/conductors?fields=hostname,alive {} -GOT:{'conductors': [{'hostname': 'rocky.rocks', 'links': [{'href': 'http://localhost/v1/conductors/rocky.rocks', 'rel': 'self'}, {'href': 'http://localhost/conductors/rocky.rocks', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'stein.rocks', 'links': [{'href': 'http://localhost/v1/conductors/stein.rocks', 'rel': 'self'}, {'href': 'http://localhost/conductors/stein.rocks', 'rel': 'bookmark'}], 'alive': True}]} -GET: /v1/conductors/rocky.rocks?fields=hostname,spongebob {} -GOT:Response: 400 Bad Request +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 Content-Type: application/json -Openstack-Request-Id: req-0e62d896-19c0-48b7-9004-3ce15162dc38 +Openstack-Request-Id: req-80cada91-236d-4a98-8886-c47ca007a787 X-Openstack-Ironic-Api-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': '2024-01-06T10:56:42.777284+00:00', 'updated_at': '2024-01-06T10:56:42.777004+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 {} -GOT:{'hostname': 'rocky.rocks', '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 {} +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'}] +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_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.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.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_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_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_allocation.TestDelete.test_delete_allocation_by_id +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_id ... 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 +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +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_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_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.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 +INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 +2025-02-08 07:32:54.744 3861413 INFO alembic.runtime.migration [None req-b1b1dfb9-abbe-492c-8b07-80796d8d5e02 - - - - - -] Context impl SQLiteImpl. +2025-02-08 07:32:54.745 3861413 INFO alembic.runtime.migration [None req-b1b1dfb9-abbe-492c-8b07-80796d8d5e02 - - - - - -] Will assume non-transactional DDL. +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_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_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.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_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.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_allocation.TestDelete.test_delete_allocation_by_name +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name ... 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_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_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_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_allocation.TestPost.test_backfill_not_allowed +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_not_allowed ... 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_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_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_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_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_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_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_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_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.TestPost.test_backfill_with_name +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_with_name ... 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_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_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_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.TestPatch.test_patch_volume_targets_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_targets_subresource ... ok +ironic.tests.unit.api.test_method.TestExpose.test_exception +ironic.tests.unit.api.test_method.TestExpose.test_exception ... ok +GET: /v1/allocations?owner=54321 {} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-3edade2d-263a-4340-af00-b4a570d1c7f8 +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-e61ac17e-4168-4cb7-81dc-095a6b712d54 +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-a59596d9-f9b2-48b3-b8e6-b085c490dfff +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 -Openstack-Request-Id: req-8e10c7d6-9b1e-42c3-9247-6c6c6782cc6b +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"} +GET: /v1/allocations {} +GOT:{'allocations': [{'uuid': '70ef077b-9457-48bb-8cdb-6f00949dd798', 'created_at': '2025-02-07T17:32:54.245304+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/70ef077b-9457-48bb-8cdb-6f00949dd798', 'rel': 'self'}, {'href': 'http://localhost/allocations/70ef077b-9457-48bb-8cdb-6f00949dd798', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'f568d514-96d2-4ed5-9614-56c5c909b5e9', 'created_at': '2025-02-07T17:32:54.247109+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/f568d514-96d2-4ed5-9614-56c5c909b5e9', 'rel': 'self'}, {'href': 'http://localhost/allocations/f568d514-96d2-4ed5-9614-56c5c909b5e9', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '40b0046d-58fd-407e-bf13-7fe8e854ceae', 'created_at': '2025-02-07T17:32:54.256874+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/40b0046d-58fd-407e-bf13-7fe8e854ceae', 'rel': 'self'}, {'href': 'http://localhost/allocations/40b0046d-58fd-407e-bf13-7fe8e854ceae', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '677d9f71-dc93-4d36-bcb0-2f6d55da8761', 'created_at': '2025-02-07T17:32:54.258437+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/677d9f71-dc93-4d36-bcb0-2f6d55da8761', 'rel': 'self'}, {'href': 'http://localhost/allocations/677d9f71-dc93-4d36-bcb0-2f6d55da8761', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '1391090c-1306-41b4-acaf-a2174ada06c1', 'created_at': '2025-02-07T17:32:54.259802+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/1391090c-1306-41b4-acaf-a2174ada06c1', 'rel': 'self'}, {'href': 'http://localhost/allocations/1391090c-1306-41b4-acaf-a2174ada06c1', 'rel': 'bookmark'}], 'node_uuid': None}]} +GET: /v1/allocations/4205e7ec-0876-4f31-a605-83ccf2246316 {} +GOT:{'uuid': '4205e7ec-0876-4f31-a605-83ccf2246316', 'created_at': '2025-02-07T17:32:54.401588+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/4205e7ec-0876-4f31-a605-83ccf2246316', 'rel': 'self'}, {'href': 'http://localhost/allocations/4205e7ec-0876-4f31-a605-83ccf2246316', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/allocations/4205e7ec-0876-4f31-a605-83ccf2246316 {} +GOT:{'uuid': '4205e7ec-0876-4f31-a605-83ccf2246316', 'created_at': '2025-02-07T17:32:54.401588+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/4205e7ec-0876-4f31-a605-83ccf2246316', 'rel': 'self'}, {'href': 'http://localhost/allocations/4205e7ec-0876-4f31-a605-83ccf2246316', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/allocations/8941bebf-2dbd-4191-a397-0edc9174455f {} +GOT:{'uuid': '8941bebf-2dbd-4191-a397-0edc9174455f', 'created_at': '2025-02-07T17:32:54.703015+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/8941bebf-2dbd-4191-a397-0edc9174455f', 'rel': 'self'}, {'href': 'http://localhost/allocations/8941bebf-2dbd-4191-a397-0edc9174455f', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/allocations/6e0abec2-ea6d-45e3-8c01-a6f5ea07ab7b {} +GOT:{'uuid': '6e0abec2-ea6d-45e3-8c01-a6f5ea07ab7b', 'created_at': '2025-02-07T17:32:54.854938+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/6e0abec2-ea6d-45e3-8c01-a6f5ea07ab7b', 'rel': 'self'}, {'href': 'http://localhost/allocations/6e0abec2-ea6d-45e3-8c01-a6f5ea07ab7b', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/node/2f692034-058b-4a9c-b265-c74ffcf04e93/allocation {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/node/81c8762a-2553-4636-bd43-f99129f2f44b/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_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.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.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_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_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_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_allocation.TestListAllocations.test_collection_links +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links ... 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_node.TestPatch.test_remove_chassis_id +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id ... ok +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'aa1d0050-d4b1-4e99-a123-11c61f65eb4a', 'owner': None, 'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/allocations/aa1d0050-d4b1-4e99-a123-11c61f65eb4a +Openstack-Request-Id: req-dc513bac-72f4-4d9a-867e-d7622a7f4676 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': '2024-01-06T10:56:43.124246+00:00', 'updated_at': '2024-01-06T10:56:43.123770+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': '2024-01-06T10:56:43.124246+00:00', 'updated_at': '2024-01-06T10:56:43.123770+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': '2024-01-06T10:56:43.124246+00:00', 'updated_at': '2024-01-06T10:56:43.123770+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': '2024-01-06T10:56:43.242159+00:00', 'updated_at': '2024-01-06T10:56:43.241736+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': '2024-01-06T10:56:43.242159+00:00', 'updated_at': '2024-01-06T10:56:43.241736+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': '2024-01-06T10:56:43.242159+00:00', 'updated_at': '2024-01-06T10:56:43.241736+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_conductor.TestListConductors.test_list -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list ... 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_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_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_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_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_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.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.TestTraits.test_delete_trait -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait ... 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_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_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_generate_uuid -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_generate_uuid ... 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_chassis.TestListChassis.test_empty -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty ... 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_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.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_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.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_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_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.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_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_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_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_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_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.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_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_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_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_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_allocation.TestPatch.test_update_not_found -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_found ... 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_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_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.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_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_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_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.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_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.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_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_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__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_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_allocation_get_all_forbidden_no_project -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbidden_no_project ... ok +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "aa1d0050-d4b1-4e99-a123-11c61f65eb4a", "created_at": "2025-02-07T17:32:54.349319+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/aa1d0050-d4b1-4e99-a123-11c61f65eb4a", "rel": "self"}, {"href": "http://localhost/allocations/aa1d0050-d4b1-4e99-a123-11c61f65eb4a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +GET: /v1/allocations/aa1d0050-d4b1-4e99-a123-11c61f65eb4a {} +GOT:{'uuid': 'aa1d0050-d4b1-4e99-a123-11c61f65eb4a', 'created_at': '2025-02-07T17:32:54.349319+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/aa1d0050-d4b1-4e99-a123-11c61f65eb4a', 'rel': 'self'}, {'href': 'http://localhost/allocations/aa1d0050-d4b1-4e99-a123-11c61f65eb4a', '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 -Location: http://localhost/v1/allocations/855f4d97-74a3-45c5-aed8-98fdb4f4c718 -Openstack-Request-Id: req-4ce52b09-27c2-4481-8285-b2410067a353 +Location: http://localhost/v1/allocations/8478310c-2d9d-4311-925a-23b20583a7bf +Openstack-Request-Id: req-19577936-feac-44cc-848c-da282c507ff4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "855f4d97-74a3-45c5-aed8-98fdb4f4c718", "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/855f4d97-74a3-45c5-aed8-98fdb4f4c718", "rel": "self"}, {"href": "http://localhost/allocations/855f4d97-74a3-45c5-aed8-98fdb4f4c718", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/855f4d97-74a3-45c5-aed8-98fdb4f4c718 {} -GOT:{'uuid': '855f4d97-74a3-45c5-aed8-98fdb4f4c718', '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/855f4d97-74a3-45c5-aed8-98fdb4f4c718', 'rel': 'self'}, {'href': 'http://localhost/allocations/855f4d97-74a3-45c5-aed8-98fdb4f4c718', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/allocations {'candidate_nodes': ['this/is/not a/node/name'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '2d179c00-80a4-488e-a44b-e11b979ff843', 'owner': None} +{"uuid": "8478310c-2d9d-4311-925a-23b20583a7bf", "created_at": "2025-02-07T17:32:54.530521+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/8478310c-2d9d-4311-925a-23b20583a7bf", "rel": "self"}, {"href": "http://localhost/allocations/8478310c-2d9d-4311-925a-23b20583a7bf", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +GET: /v1/allocations/8478310c-2d9d-4311-925a-23b20583a7bf {} +GOT:{'uuid': '8478310c-2d9d-4311-925a-23b20583a7bf', 'created_at': '2025-02-07T17:32:54.530521+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/8478310c-2d9d-4311-925a-23b20583a7bf', 'rel': 'self'}, {'href': 'http://localhost/allocations/8478310c-2d9d-4311-925a-23b20583a7bf', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '25bd12cb-1a7b-4375-84e9-50a570278e93', 'owner': None, 'node': '2ab141c2-f123-470e-829b-d2d20e24a133'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c593d07c-7313-44c1-aa5e-99320b713e0c +Openstack-Request-Id: req-15edd2fc-e807-47a9-b06a-cf0e1c2c51f6 X-Openstack-Ironic-Api-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': 'e68ecee6-65bc-4ff3-987f-66961ba69b0d', 'owner': None} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 2ab141c2-f123-470e-829b-d2d20e24a133 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-eb59a426-8412-49dc-9942-06e20b19694f +Openstack-Request-Id: req-19c638ce-5224-41e2-a1b0-28a7ffd6c4dd +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': 'c707a48b-4566-4df4-8c34-ef89cf10a26f', 'owner': None, 'node': 'backfill-me'} +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/allocations/c707a48b-4566-4df4-8c34-ef89cf10a26f +Openstack-Request-Id: req-c206894d-9bdc-45ae-8aef-f03a2818cfb1 X-Openstack-Ironic-Api-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': '5ee5eff4-b856-47be-83a7-41b38f26eb3e', 'owner': None} +{"uuid": "c707a48b-4566-4df4-8c34-ef89cf10a26f", "created_at": "2025-02-07T17:32:55.163690+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/c707a48b-4566-4df4-8c34-ef89cf10a26f", "rel": "self"}, {"href": "http://localhost/allocations/c707a48b-4566-4df4-8c34-ef89cf10a26f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +GET: /v1/allocations/c707a48b-4566-4df4-8c34-ef89cf10a26f {} +GOT:{'uuid': 'c707a48b-4566-4df4-8c34-ef89cf10a26f', 'created_at': '2025-02-07T17:32:55.163690+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/c707a48b-4566-4df4-8c34-ef89cf10a26f', 'rel': 'self'}, {'href': 'http://localhost/allocations/c707a48b-4566-4df4-8c34-ef89cf10a26f', '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 -Location: http://localhost/v1/allocations/5ee5eff4-b856-47be-83a7-41b38f26eb3e -Openstack-Request-Id: req-38318446-e37a-483c-9382-b5bd4f1b6d84 +Location: http://localhost/v1/allocations/52229c3d-518b-4e1e-a9d9-b4e3b3f58116 +Openstack-Request-Id: req-044932c5-614e-40de-8c7f-ee2b4ca68445 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5ee5eff4-b856-47be-83a7-41b38f26eb3e", "created_at": "2024-01-06T10:56:43.148369+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/5ee5eff4-b856-47be-83a7-41b38f26eb3e", "rel": "self"}, {"href": "http://localhost/allocations/5ee5eff4-b856-47be-83a7-41b38f26eb3e", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/5ee5eff4-b856-47be-83a7-41b38f26eb3e {} -GOT:{'uuid': '5ee5eff4-b856-47be-83a7-41b38f26eb3e', 'created_at': '2024-01-06T10:56:43.148369+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/5ee5eff4-b856-47be-83a7-41b38f26eb3e', 'rel': 'self'}, {'href': 'http://localhost/allocations/5ee5eff4-b856-47be-83a7-41b38f26eb3e', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '3013dd42-5743-4d16-a9c5-fac3ef622dbc', 'owner': None} +{"uuid": "52229c3d-518b-4e1e-a9d9-b4e3b3f58116", "created_at": "2025-02-07T17:32:55.503850+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/52229c3d-518b-4e1e-a9d9-b4e3b3f58116", "rel": "self"}, {"href": "http://localhost/allocations/52229c3d-518b-4e1e-a9d9-b4e3b3f58116", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +GET: /v1/allocations/52229c3d-518b-4e1e-a9d9-b4e3b3f58116 {} +GOT:{'uuid': '52229c3d-518b-4e1e-a9d9-b4e3b3f58116', 'created_at': '2025-02-07T17:32:55.503850+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/52229c3d-518b-4e1e-a9d9-b4e3b3f58116', 'rel': 'self'}, {'href': 'http://localhost/allocations/52229c3d-518b-4e1e-a9d9-b4e3b3f58116', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '04fa6a51-4d98-4422-a86e-154d75dd9bd9', 'owner': None} +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_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.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.test_method.TestExpose.test_expose_validation +ironic.tests.unit.api.test_method.TestExpose.test_expose_validation ... ok +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.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.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_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_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_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_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.test_method.TestExpose.test_post_body +ironic.tests.unit.api.test_method.TestExpose.test_post_body ... 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.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 +GET: /v1/bad/path {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +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-ece8d94b-a6c0-4b2e-af76-f7fe7392d585 +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-951a6eff-e5dd-4485-8b61-ee579b6f45ed +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-07T17:32:54.786065+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': '2025-02-07T17:32:54.786065+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-7d65331a-2048-469e-b7ce-5a83e1b19cc0 +Openstack-Request-Id: req-5ed5a17e-ed09-4151-aee4-dbeb0d676906 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}"} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'owner': None} +POST: /v1/chassis {'extra': {}, 'description': 'data-center-1-chassis'} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/allocations/9fdfabef-f49d-43b4-b370-7dfd6066da33 -Openstack-Request-Id: req-570e3fc6-785d-4f39-aad6-8bde160f3e99 +Location: http://localhost/v1/chassis/578ef187-12a1-489d-838f-05b0567caf51 +Openstack-Request-Id: req-6491da96-c54c-43d9-9d0e-6305c7e27693 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "9fdfabef-f49d-43b4-b370-7dfd6066da33", "created_at": "2024-01-06T10:56:43.394698+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/9fdfabef-f49d-43b4-b370-7dfd6066da33", "rel": "self"}, {"href": "http://localhost/allocations/9fdfabef-f49d-43b4-b370-7dfd6066da33", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/9fdfabef-f49d-43b4-b370-7dfd6066da33 {} -GOT:{'uuid': '9fdfabef-f49d-43b4-b370-7dfd6066da33', 'created_at': '2024-01-06T10:56:43.394698+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/9fdfabef-f49d-43b4-b370-7dfd6066da33', 'rel': 'self'}, {'href': 'http://localhost/allocations/9fdfabef-f49d-43b4-b370-7dfd6066da33', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '747f744f-8464-431e-9114-074cdd885926', 'owner': None} -GOT:Response: 405 Method Not Allowed -Content-Type: application/json -{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow allocations\"}"} -POST: /v1/allocations {'candidate_nodes': ['invalid-format'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '4f9e198d-c911-4e66-997b-f2433d837501', 'owner': None} +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "578ef187-12a1-489d-838f-05b0567caf51", "created_at": "2025-02-07T17:32:55.523575+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/578ef187-12a1-489d-838f-05b0567caf51", "rel": "self"}, {"href": "http://localhost/chassis/578ef187-12a1-489d-838f-05b0567caf51", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/578ef187-12a1-489d-838f-05b0567caf51/nodes", "rel": "self"}, {"href": "http://localhost/chassis/578ef187-12a1-489d-838f-05b0567caf51/nodes", "rel": "bookmark"}]]} +GET: /v1/chassis {} +GOT:{'chassis': [{'uuid': '578ef187-12a1-489d-838f-05b0567caf51', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/578ef187-12a1-489d-838f-05b0567caf51', 'rel': 'self'}, {'href': 'http://localhost/chassis/578ef187-12a1-489d-838f-05b0567caf51', '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-71318153-ae54-4908-b173-9567f4a1bc2c +Openstack-Request-Id: req-93dcfbb6-e73c-43a1-86b3-b7595932cb7b X-Openstack-Ironic-Api-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': '6906a2a2-332a-4324-bfc3-16df83953f00', 'owner': None} +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-702543d1-e86f-48b8-9804-3d94cbad8c14 +Openstack-Request-Id: req-d6414944-aa90-4194-afb6-5e9c6d5385a5 X-Openstack-Ironic-Api-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': 'fdafaffc-db34-47cd-bf9c-2c0012592e45', '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_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_event.TestPost.test_events -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events ... ok -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'dd81c1e8-e61f-4013-8e19-a6eddd435db2', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +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/deploy_templates/dd81c1e8-e61f-4013-8e19-a6eddd435db2 -Openstack-Request-Id: req-1b489c6d-369b-473a-ad11-8cb22bd61bbb +Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +Openstack-Request-Id: req-60bc887d-20f7-42d5-b44c-4b51bdec9708 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "dd81c1e8-e61f-4013-8e19-a6eddd435db2", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/dd81c1e8-e61f-4013-8e19-a6eddd435db2", "rel": "self"}, {"href": "http://localhost/deploy_templates/dd81c1e8-e61f-4013-8e19-a6eddd435db2", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -GET: /v1/deploy_templates/dd81c1e8-e61f-4013-8e19-a6eddd435db2 {} -GOT:{'uuid': 'dd81c1e8-e61f-4013-8e19-a6eddd435db2', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/dd81c1e8-e61f-4013-8e19-a6eddd435db2', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/dd81c1e8-e61f-4013-8e19-a6eddd435db2', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '16799d82-a67b-4ebf-b7da-61f4492000b4', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': [{'bar': 'baz'}]}, 'priority': 10}], 'extra': {}} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:32:56.216414+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_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_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_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_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.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_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_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_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.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_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.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_allocation.TestListAllocations.test_empty +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.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_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_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_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_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_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_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.TestPatch.test_remove_internal_field +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field ... 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.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_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_driver.TestListDrivers.test_drivers +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers ... 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_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_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.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_node.TestPatch.test_remove_mandatory_field +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_mandatory_field ... 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_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_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_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_node.TestBIOS.test_get_all_bios_detail_false +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_false ... ok +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/deploy_templates/16799d82-a67b-4ebf-b7da-61f4492000b4 -Openstack-Request-Id: req-3bceedbc-cb55-4e2b-aa2d-680434c573bf +Openstack-Request-Id: req-730227a2-4be8-4e2e-851f-8956e675f0db X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "16799d82-a67b-4ebf-b7da-61f4492000b4", "created_at": "2024-01-06T10:56:43.154323+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/16799d82-a67b-4ebf-b7da-61f4492000b4", "rel": "self"}, {"href": "http://localhost/deploy_templates/16799d82-a67b-4ebf-b7da-61f4492000b4", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"foo": [{"bar": "baz"}]}, "priority": 10}]} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'c6b93ada-30ab-47f8-a82c-af96093eb4ca', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} -GOT:Response: 201 Created +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-aaf347c3-0a9b-4ef0-a436-e905665886a3 +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 -Location: http://localhost/v1/deploy_templates/c6b93ada-30ab-47f8-a82c-af96093eb4ca -Openstack-Request-Id: req-4e05e47c-835d-419c-89ad-cc550dd998c7 +Openstack-Request-Id: req-43c7fb3b-5643-4d66-be8e-a9a302a364ed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "c6b93ada-30ab-47f8-a82c-af96093eb4ca", "created_at": "2024-01-06T10:56:43.234368+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/c6b93ada-30ab-47f8-a82c-af96093eb4ca", "rel": "self"}, {"href": "http://localhost/deploy_templates/c6b93ada-30ab-47f8-a82c-af96093eb4ca", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -GET: /v1/deploy_templates/c6b93ada-30ab-47f8-a82c-af96093eb4ca {} -GOT:{'uuid': 'c6b93ada-30ab-47f8-a82c-af96093eb4ca', 'created_at': '2024-01-06T10:56:43.234368+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/c6b93ada-30ab-47f8-a82c-af96093eb4ca', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/c6b93ada-30ab-47f8-a82c-af96093eb4ca', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'e4582533-a8ab-4594-86d3-9b1abbd9e261', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} -GOT:Response: 500 Internal Server Error +{"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-4b30ec63-0e41-4553-bf46-dd39f00c71cc +Openstack-Request-Id: req-48d1f472-0753-4c53-8610-20abd03349bd X-Openstack-Ironic-Api-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 +{"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 -Location: http://localhost/v1/deploy_templates/2c93a795-e1a3-4668-b9db-6b5319f17795 -Openstack-Request-Id: req-0606c3be-9fd1-4f54-ad04-db85f818f1d1 +Openstack-Request-Id: req-0fdbbfec-aaab-4d2b-858c-c9d648f01454 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "2c93a795-e1a3-4668-b9db-6b5319f17795", "created_at": "2024-01-06T10:56:43.454688+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/2c93a795-e1a3-4668-b9db-6b5319f17795", "rel": "self"}, {"href": "http://localhost/deploy_templates/2c93a795-e1a3-4668-b9db-6b5319f17795", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -GET: /v1/deploy_templates/2c93a795-e1a3-4668-b9db-6b5319f17795 {} -GOT:{'uuid': '2c93a795-e1a3-4668-b9db-6b5319f17795', 'created_at': '2024-01-06T10:56:43.454688+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/2c93a795-e1a3-4668-b9db-6b5319f17795', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/2c93a795-e1a3-4668-b9db-6b5319f17795', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'd70c826f-40b9-4dd3-8c49-64f6afbd2edb', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} -GOT:Response: 405 Method Not Allowed +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_id', 'op': 'remove'}] +GOT:Response: 400 Bad Request 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': '6f364b5c-1385-4259-9671-ae15352db45c', 'steps': [], 'extra': {}} +Openstack-Request-Id: req-d5d2d807-5cf9-4faa-a5c1-61fa5b93c468 +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 +Content-Type: application/json +Openstack-Request-Id: req-501af316-1bba-4e9a-9509-00da4d0306d5 +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-07T17:32:55.868774+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-5e171f0d-010a-4bb7-bb1d-bc3af061ab50 +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\": \"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-51322fa4-592e-42b4-b9de-835c0a91a9e6 +Openstack-Request-Id: req-83960cd9-dda9-42ca-9365-2b1ccc757720 X-Openstack-Ironic-Api-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': '54b3479f-1ef4-48ec-b195-33b342f0e89e', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': 42} +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-e32582c2-91f6-46bd-9959-9bf7b0e66b6b +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'}] +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.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_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_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_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_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_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_deploy_template.TestPatch.test_remove_uuid +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_uuid ... ok +GOT:{'allocations': [{'uuid': 'aa3b8ce2-601f-46bd-86e6-a734f0801189', 'created_at': '2025-02-07T17:32:55.643630+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/aa3b8ce2-601f-46bd-86e6-a734f0801189', 'rel': 'self'}, {'href': 'http://localhost/allocations/aa3b8ce2-601f-46bd-86e6-a734f0801189', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'c95768a4-b563-4b75-b344-6ac770cf2cf9', 'created_at': '2025-02-07T17:32:55.652228+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/c95768a4-b563-4b75-b344-6ac770cf2cf9', 'rel': 'self'}, {'href': 'http://localhost/allocations/c95768a4-b563-4b75-b344-6ac770cf2cf9', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'a91ce112-3bf4-4a72-9a41-22f587992470', 'created_at': '2025-02-07T17:32:55.653708+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/a91ce112-3bf4-4a72-9a41-22f587992470', 'rel': 'self'}, {'href': 'http://localhost/allocations/a91ce112-3bf4-4a72-9a41-22f587992470', 'rel': 'bookmark'}], 'node_uuid': None}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=a91ce112-3bf4-4a72-9a41-22f587992470'} +GET: /v1/allocations?fields=uuid,extra {} +GOT:{'allocations': [{'uuid': '457a1690-3204-4510-b033-813eef348562', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/457a1690-3204-4510-b033-813eef348562', 'rel': 'self'}, {'href': 'http://localhost/allocations/457a1690-3204-4510-b033-813eef348562', 'rel': 'bookmark'}]}, {'uuid': 'd125ee54-00fc-4f4a-90ac-6b12806cb651', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/d125ee54-00fc-4f4a-90ac-6b12806cb651', 'rel': 'self'}, {'href': 'http://localhost/allocations/d125ee54-00fc-4f4a-90ac-6b12806cb651', 'rel': 'bookmark'}]}, {'uuid': '416953f2-0a90-4d90-a05b-b63b1974f321', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/416953f2-0a90-4d90-a05b-b63b1974f321', 'rel': 'self'}, {'href': 'http://localhost/allocations/416953f2-0a90-4d90-a05b-b63b1974f321', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=416953f2-0a90-4d90-a05b-b63b1974f321'} +GET: /v1/allocations {} +GOT:{'allocations': [{'uuid': 'f198b80f-7fcf-43d1-b9bd-3d204c619c61', 'created_at': '2025-02-07T17:32:56.119596+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/f198b80f-7fcf-43d1-b9bd-3d204c619c61', 'rel': 'self'}, {'href': 'http://localhost/allocations/f198b80f-7fcf-43d1-b9bd-3d204c619c61', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'f3df068b-4364-4d20-9bad-7809566b80e1', 'created_at': '2025-02-07T17:32:56.125576+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/f3df068b-4364-4d20-9bad-7809566b80e1', 'rel': 'self'}, {'href': 'http://localhost/allocations/f3df068b-4364-4d20-9bad-7809566b80e1', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'e0daa33d-3b3d-462c-95d3-08783cfb3718', 'created_at': '2025-02-07T17:32:56.127164+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/e0daa33d-3b3d-462c-95d3-08783cfb3718', 'rel': 'self'}, {'href': 'http://localhost/allocations/e0daa33d-3b3d-462c-95d3-08783cfb3718', 'rel': 'bookmark'}], 'node_uuid': None}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=e0daa33d-3b3d-462c-95d3-08783cfb3718'} +GET: /v1/allocations {} +GOT:{'allocations': []} +GET: /v1/allocations?node=node-1 {} +GOT:{'allocations': [{'uuid': '489901e0-37e1-4b9c-976a-d159423e3486', 'created_at': '2025-02-07T17:32:56.711706+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/489901e0-37e1-4b9c-976a-d159423e3486', 'rel': 'self'}, {'href': 'http://localhost/allocations/489901e0-37e1-4b9c-976a-d159423e3486', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '23c6be15-425a-4d05-8417-3734c9fd671b', 'created_at': '2025-02-07T17:32:56.725743+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/23c6be15-425a-4d05-8417-3734c9fd671b', 'rel': 'self'}, {'href': 'http://localhost/allocations/23c6be15-425a-4d05-8417-3734c9fd671b', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '6c517507-2b2b-434a-a653-2a632c64e8ea', 'created_at': '2025-02-07T17:32:56.727327+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/6c517507-2b2b-434a-a653-2a632c64e8ea', 'rel': 'self'}, {'href': 'http://localhost/allocations/6c517507-2b2b-434a-a653-2a632c64e8ea', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/allocations?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'allocations': [{'uuid': '332a14a8-bb5c-4118-977c-3252c052279c', 'created_at': '2025-02-07T17:32:57.011285+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/332a14a8-bb5c-4118-977c-3252c052279c', 'rel': 'self'}, {'href': 'http://localhost/allocations/332a14a8-bb5c-4118-977c-3252c052279c', '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-b1e0b0dc-1233-4ddb-ac1c-2d4f1eb95128 +Openstack-Request-Id: req-3ba60a6e-5e39-48bd-aae0-05629b639e4b X-Openstack-Ironic-Api-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': '35b688d4-1356-4724-b3b2-934e125d8097', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}, 'foo': 'bar'} -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.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.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_event.TestPostRBAC.test_events -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events ... 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.TestListNodes.test_associated_nodes_error -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_error ... 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_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_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.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_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_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_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 +{"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_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_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.TestListChassis.test_get_one -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one ... 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 -GOT:Response: 201 Created +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.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request +ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request ... ok +PATCH: /v1/deploy_templates/f5c7f699-4fc6-47af-8e48-b8d58808d2b7 [{'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 -Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-15a09e2a-d79b-4596-968c-63e2cf6b8b7f +Openstack-Request-Id: req-b9f00640-4e94-4a77-aa78-17439c68a239 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-06T10:56:43.002300+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-06T10:56:43.002300+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 +{"uuid": "f5c7f699-4fc6-47af-8e48-b8d58808d2b7", "created_at": "2025-02-07T17:32:54.409229+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f5c7f699-4fc6-47af-8e48-b8d58808d2b7", "rel": "self"}, {"href": "http://localhost/deploy_templates/f5c7f699-4fc6-47af-8e48-b8d58808d2b7", "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/180c48ca-79ec-4458-bd4c-9f31c27613fd [{'path': '/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-9504d517-c5b4-4916-8ad2-0c43e54090e2 +Openstack-Request-Id: req-0c60b9f8-2f35-41e1-9d50-0e9b23e0340e X-Openstack-Ironic-Api-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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/e218cd2a-8e70-4bbf-835d-a354c6a03716 [{'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 -Location: http://localhost/v1/volume/connectors/acca4088-bb81-4a67-9f31-f3039f48cb73 -Openstack-Request-Id: req-66584b48-c355-4617-a611-f33c4d48a5e1 +Openstack-Request-Id: req-b042d7c8-1654-46c2-958c-2da7dc6b4695 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "acca4088-bb81-4a67-9f31-f3039f48cb73", "created_at": "2024-01-06T10:56:43.255020+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/acca4088-bb81-4a67-9f31-f3039f48cb73", "rel": "self"}, {"href": "http://localhost/volume/connectors/acca4088-bb81-4a67-9f31-f3039f48cb73", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -GET: /v1/volume/connectors/acca4088-bb81-4a67-9f31-f3039f48cb73 {} -GOT:{'uuid': 'acca4088-bb81-4a67-9f31-f3039f48cb73', 'created_at': '2024-01-06T10:56:43.255020+00:00', 'updated_at': None, 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/acca4088-bb81-4a67-9f31-f3039f48cb73', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/acca4088-bb81-4a67-9f31-f3039f48cb73', '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} +{"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/dd87880b-0b0b-4cc2-9cd0-5e5b2464477e [{'path': '/foo', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-96e60ad2-3513-4944-8681-4d356457bf66 +Openstack-Request-Id: req-04113af9-da26-4919-8728-7cf06f94b2c0 X-Openstack-Ironic-Api-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'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/de027d08-95c6-4536-9438-c5d2926da060 [{'path': '/steps/1', 'op': 'remove'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-7ba13817-6b9f-410f-80dd-8e84ad3e87ad +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "de027d08-95c6-4536-9438-c5d2926da060", "created_at": "2025-02-07T17:32:55.510963+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/de027d08-95c6-4536-9438-c5d2926da060", "rel": "self"}, {"href": "http://localhost/deploy_templates/de027d08-95c6-4536-9438-c5d2926da060", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 10}]} +PATCH: /v1/deploy_templates/aed11072-e885-428d-add7-c5f6c56a65e9 [{'path': '/name', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-628849fb-ba6b-4f79-afe0-e5742d13e60b +Openstack-Request-Id: req-08837476-a0a3-4ad6-9af7-de9aa517ceb7 X-Openstack-Ironic-Api-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': {}} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'name' is a required property\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/fa5fa3da-1e72-410d-976e-d50c5317ef2b [{'path': '/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6e717be6-51dc-46a0-8d43-a35959209762 +Openstack-Request-Id: req-996d1a7d-21b8-4291-9d81-beb85d60de69 X-Openstack-Ironic-Api-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'} +{"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/91013c1c-237a-4680-bea7-652a59dfd1f3 [{'path': '/steps/1', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-23c37c7c-8688-4a83-a4d6-1517fbe9946f +Openstack-Request-Id: req-0058b194-f598-47db-accd-a4a82e65c430 X-Openstack-Ironic-Api-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'} +{"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/8d8e157d-e457-4450-966b-0246b491fb1d [{'path': '/steps/0/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-ffdc1049-9f7b-422a-9662-c7f0dacee565 +Openstack-Request-Id: req-e57f8d56-aa26-4ddf-a3e8-c7246c9d0cf4 X-Openstack-Ironic-Api-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\": \"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/96af1f9e-d600-4688-ae8e-38b083ce708c [{'path': '/steps/0', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-85f86f3d-667e-4c90-a240-0eee28e18ea2 +Openstack-Request-Id: req-69408013-6661-46a8-8936-339beedcce30 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-06T10:56:43.919133+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': '546d9f12-a844-4e3b-af25-19e00a6c35d6', 'type': 'iqn', 'connector_id': 'test-connector-id-456', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -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_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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/5d9c0fb7-f120-43d7-aa00-37fd968a8f4f [{'path': '/steps', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c01472eb-5de4-499c-a142-ad35ca7b9791 +Openstack-Request-Id: req-174269e7-a827-495b-8995-64763ad42232 X-Openstack-Ironic-Api-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/0d1d6b9f-447a-41d4-ab67-428385d23ec1 [{'path': '/name', 'value': '[test]', 'op': 'replace'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'steps' is a required property\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/69f62081-3a16-4334-8327-3281ae4bbf24 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c1e7fc02-5e0d-4be2-b0d5-0a5ea8574e3f +Openstack-Request-Id: req-e2253caf-21b1-4040-8e4a-3163b4f8e4f6 X-Openstack-Ironic-Api-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/1061547f-2b6e-41b5-b565-49ffec9d93e9 [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/3f49f00b-a606-4bcb-b1c6-c5cc4b87a7a5 [{'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.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.TestPatch.test_add +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add ... 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_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_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_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_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.TestPatch.test_remove_ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok ... 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_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_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_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.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_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_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_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.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_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_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.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_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_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_driver.TestListDrivers.test_drivers_detail_bad_version +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version ... ok +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-05e06789-9fe8-4e78-9723-b7b7fae7110f +Location: http://localhost/v1/allocations/04fa6a51-4d98-4422-a86e-154d75dd9bd9 +Openstack-Request-Id: req-e8443fdf-268b-45b8-85dd-b9a79186937f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1061547f-2b6e-41b5-b565-49ffec9d93e9", "created_at": "2024-01-06T10:56:43.071013+00:00", "updated_at": "2024-01-06T10:56:43.085890+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/1061547f-2b6e-41b5-b565-49ffec9d93e9", "rel": "self"}, {"href": "http://localhost/allocations/1061547f-2b6e-41b5-b565-49ffec9d93e9", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/1061547f-2b6e-41b5-b565-49ffec9d93e9 {} -GOT:{'uuid': '1061547f-2b6e-41b5-b565-49ffec9d93e9', 'created_at': '2024-01-06T10:56:43.071013+00:00', 'updated_at': '2024-01-06T10:56:43.085890+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/1061547f-2b6e-41b5-b565-49ffec9d93e9', 'rel': 'self'}, {'href': 'http://localhost/allocations/1061547f-2b6e-41b5-b565-49ffec9d93e9', 'rel': 'bookmark'}], 'node_uuid': None} -PATCH: /v1/allocations/8494598f-d997-4398-949a-8a7ff2552aac [{'path': '/name', 'value': None, 'op': 'replace'}] -GOT:Response: 200 OK +{"uuid": "04fa6a51-4d98-4422-a86e-154d75dd9bd9", "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/04fa6a51-4d98-4422-a86e-154d75dd9bd9", "rel": "self"}, {"href": "http://localhost/allocations/04fa6a51-4d98-4422-a86e-154d75dd9bd9", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/04fa6a51-4d98-4422-a86e-154d75dd9bd9 {} +GOT:{'uuid': '04fa6a51-4d98-4422-a86e-154d75dd9bd9', '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/04fa6a51-4d98-4422-a86e-154d75dd9bd9', 'rel': 'self'}, {'href': 'http://localhost/allocations/04fa6a51-4d98-4422-a86e-154d75dd9bd9', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/allocations {'candidate_nodes': ['this/is/not a/node/name'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'd596f515-9196-4404-8808-fb83aa1233cc', 'owner': None} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c12160de-b74a-4f1d-bf07-3fb42f8ee713 +Openstack-Request-Id: req-cc3baeb6-f01e-4227-8ad6-a1367e0048a1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "8494598f-d997-4398-949a-8a7ff2552aac", "created_at": "2024-01-06T10:56:43.190196+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/8494598f-d997-4398-949a-8a7ff2552aac", "rel": "self"}, {"href": "http://localhost/allocations/8494598f-d997-4398-949a-8a7ff2552aac", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/8494598f-d997-4398-949a-8a7ff2552aac {} -GOT:{'uuid': '8494598f-d997-4398-949a-8a7ff2552aac', 'created_at': '2024-01-06T10:56:43.190196+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/8494598f-d997-4398-949a-8a7ff2552aac', 'rel': 'self'}, {'href': 'http://localhost/allocations/8494598f-d997-4398-949a-8a7ff2552aac', 'rel': 'bookmark'}], 'node_uuid': None} -PATCH: /v1/allocations/50bd5094-a61a-4e03-94f1-9c308ba33f37 [{'path': '/name', 'value': 'test', 'op': 'replace'}] -GOT:Response: 200 OK +{"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': 'ba62d52d-9f9f-451f-903f-098c2d2f34d0', 'owner': None} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-24ae6199-8d79-442e-8331-2b1b06cc7893 +Openstack-Request-Id: req-06a2c455-debb-4c32-a2c9-893d97676720 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "50bd5094-a61a-4e03-94f1-9c308ba33f37", "created_at": "2024-01-06T10:56:43.297901+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/50bd5094-a61a-4e03-94f1-9c308ba33f37", "rel": "self"}, {"href": "http://localhost/allocations/50bd5094-a61a-4e03-94f1-9c308ba33f37", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/50bd5094-a61a-4e03-94f1-9c308ba33f37 {} -GOT:{'uuid': '50bd5094-a61a-4e03-94f1-9c308ba33f37', 'created_at': '2024-01-06T10:56:43.297901+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/50bd5094-a61a-4e03-94f1-9c308ba33f37', 'rel': 'self'}, {'href': 'http://localhost/allocations/50bd5094-a61a-4e03-94f1-9c308ba33f37', 'rel': 'bookmark'}], 'node_uuid': None} -PATCH: /v1/allocations/3847eac2-64e6-4e68-bd03-8d055068e7e2 [{'path': '/name', 'value': 'new', 'op': 'replace'}] -GOT:Response: 500 Internal Server Error +{"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': 'bb72df9c-3796-41b7-b5ec-3f840926a087', 'owner': None} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-67458be9-0b63-4c1e-abd7-f906a9aef26c +Location: http://localhost/v1/allocations/bb72df9c-3796-41b7-b5ec-3f840926a087 +Openstack-Request-Id: req-2422afe3-6136-43be-9491-6171adedc8bb X-Openstack-Ironic-Api-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/57b4e7d8-6015-42e8-865d-8b0dc24eb9fc [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 405 Method Not Allowed +{"uuid": "bb72df9c-3796-41b7-b5ec-3f840926a087", "created_at": "2025-02-07T17:32:56.611689+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/bb72df9c-3796-41b7-b5ec-3f840926a087", "rel": "self"}, {"href": "http://localhost/allocations/bb72df9c-3796-41b7-b5ec-3f840926a087", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/bb72df9c-3796-41b7-b5ec-3f840926a087 {} +GOT:{'uuid': 'bb72df9c-3796-41b7-b5ec-3f840926a087', 'created_at': '2025-02-07T17:32:56.611689+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/bb72df9c-3796-41b7-b5ec-3f840926a087', 'rel': 'self'}, {'href': 'http://localhost/allocations/bb72df9c-3796-41b7-b5ec-3f840926a087', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'e5273b68-c14f-40fb-b6c4-c9296e01b634', 'owner': None} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-a4275e0c-69bd-4791-a3e4-3bdebbbd246e +Openstack-Request-Id: req-5443e92b-f45e-422f-be59-b7a97f25762c 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/5321d2f7-7199-40ee-9b45-7da133a6c4e1 [{'path': '/name', 'value': 'b', 'op': 'replace'}] -GOT:Response: 404 Not Found +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 Content-Type: application/json -Openstack-Request-Id: req-b5cd99ac-4f7c-487d-a0a8-fd3674c2a81f +Location: http://localhost/v1/allocations/fed842ff-14fe-41bc-afcf-eec2bfac2222 +Openstack-Request-Id: req-8a0f44f7-c184-4673-840a-d8a0f021244f X-Openstack-Ironic-Api-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 5321d2f7-7199-40ee-9b45-7da133a6c4e1 could not be found.\", \"debuginfo\": null}"} -PATCH: /v1/allocations/314bdc96-8d92-42b6-94ad-0cb2b1ce57cb [{'path': '/owner', 'value': '54321', 'op': 'replace'}] +{"uuid": "fed842ff-14fe-41bc-afcf-eec2bfac2222", "created_at": "2025-02-07T17:32:57.652700+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/fed842ff-14fe-41bc-afcf-eec2bfac2222", "rel": "self"}, {"href": "http://localhost/allocations/fed842ff-14fe-41bc-afcf-eec2bfac2222", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/fed842ff-14fe-41bc-afcf-eec2bfac2222 {} +GOT:{'uuid': 'fed842ff-14fe-41bc-afcf-eec2bfac2222', 'created_at': '2025-02-07T17:32:57.652700+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/fed842ff-14fe-41bc-afcf-eec2bfac2222', 'rel': 'self'}, {'href': 'http://localhost/allocations/fed842ff-14fe-41bc-afcf-eec2bfac2222', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'fb3cba47-53ec-4cde-a2a7-8023254fb332', 'owner': None} +GOT:Response: 405 Method Not Allowed +Content-Type: application/json +{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow allocations\"}"} +POST: /v1/allocations {'candidate_nodes': ['invalid-format'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '1c652ca2-8510-42dd-8201-957dad916af7', 'owner': None} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e25dd1b8-6381-4e6e-8033-f3d27894b787 +Openstack-Request-Id: req-2fcad473-e07a-462f-b58e-35d14484b212 X-Openstack-Ironic-Api-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/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-40ff0266-5646-4760-92a7-ecc59c3ece92 +{"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': '35a78394-ea31-4f61-911d-123aae907c13', 'owner': None} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-4721013d-9287-4146-ab78-5d4aa47baf30 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'}]} -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_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_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_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.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_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_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_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_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_event.TestPostRBAC.test_events_unsupported_api_version -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_unsupported_api_version ... ok -DELETE: /v1/allocations/7f92e146-2d70-4ca1-b1f1-335fc13da5d2 +{"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': 'a913edcb-e08b-4a76-974b-38045e4f28d1', 'owner': None} +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_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.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.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.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_driver.TestListDrivers.test_drivers_detail_bad_version_false +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false ... ok +DELETE: /v1/allocations/6cb06aae-0468-433d-9336-b58887aec1d2 GOT:Response: 204 No Content -Openstack-Request-Id: req-04786d5e-bc62-4bee-adb7-e673f356c087 +Openstack-Request-Id: req-ebe90d03-49eb-48ea-af2f-9fa5ea746f85 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-85f49af0-37ab-4567-be82-0df834135e58 +Openstack-Request-Id: req-eefd5800-0ee8-4abb-9a93-ccbb5a17571e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -6693,21 +6906,21 @@ DELETE: /v1/allocations/blah GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c0673eb1-f579-46f0-b15a-0c2c089bab18 +Openstack-Request-Id: req-b9573b62-5ace-4d03-91be-9a64f3ad67e0 X-Openstack-Ironic-Api-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-1a6c18e4-fa0c-4d98-a51c-1f9231c32bb3 +Openstack-Request-Id: req-d7f6aa6f-e3d3-4225-af56-249adffca514 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-395c8adc-9678-4c3e-8e7d-e256faf60d95 +Openstack-Request-Id: req-42be88d1-80e8-4b0f-a6c5-4c724b6ad072 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -6716,15 +6929,15 @@ GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -DELETE: /v1/nodes/d20b40ad-924b-408e-b72b-6226388c25de/allocation +DELETE: /v1/nodes/55d42180-2042-4b5c-8dad-a6507850289c/allocation GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8d28d46f-e35f-48fa-9529-93cee499c8f8 +Openstack-Request-Id: req-8ff2349e-020f-41fb-92b6-ee89bbb3bdad X-Openstack-Ironic-Api-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 d20b40ad-924b-408e-b72b-6226388c25de was not found\", \"debuginfo\": null}"} -DELETE: /v1/allocations/055d02a6-507f-49c3-a74b-d95d5815a2c9 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation for node 55d42180-2042-4b5c-8dad-a6507850289c was not found\", \"debuginfo\": null}"} +DELETE: /v1/allocations/d39202dc-54a5-4c15-93cc-7cf9581977e6 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\"}"} @@ -6732,119 +6945,94 @@ 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/04289b1d-3897-44c9-96c2-f8b7b507f44a/allocation +DELETE: /v1/nodes/789106bd-c3be-461a-bb26-36b3938c4d86/allocation GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-fa57f03d-ef55-4e4d-806d-277745fb4d2f +Openstack-Request-Id: req-f09e1885-9bf1-4e81-a2ea-25f0765d89ff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 04289b1d-3897-44c9-96c2-f8b7b507f44a could not be found.\", \"debuginfo\": null}"} -DELETE: /v1/allocations/aa860699-30ad-4f3b-ba75-920c01d1f246 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 789106bd-c3be-461a-bb26-36b3938c4d86 could not be found.\", \"debuginfo\": null}"} +DELETE: /v1/allocations/306341e8-c626-43f7-a6be-d1abcd502f54 GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-992bcadd-e666-44c7-8316-0e381fb3b86d +Openstack-Request-Id: req-d84e7248-c618-4813-8ca6-1cbfd233b4dd X-Openstack-Ironic-Api-Maximum-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}"} -GET: /v1/allocations?owner=54321 {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-2e02dba8-1fcb-4ea6-bd60-d85e00b7d9d9 -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-e4d4d60d-2aab-43f1-935b-2aea4119f7d6 -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-97e8516d-58fb-489b-b927-7122d802f828 -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 +PATCH: /v1/allocations/62fb573d-e702-4418-926f-ad4465f9fdd0 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK 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': '99878086-b6e0-4180-9bf4-cd709d5a9a2c', 'created_at': '2024-01-06T10:56:43.965569+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/99878086-b6e0-4180-9bf4-cd709d5a9a2c', 'rel': 'self'}, {'href': 'http://localhost/allocations/99878086-b6e0-4180-9bf4-cd709d5a9a2c', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'f850f0cc-6832-4763-860b-b9cb2da9de1a', 'created_at': '2024-01-06T10:56:43.967654+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/f850f0cc-6832-4763-860b-b9cb2da9de1a', 'rel': 'self'}, {'href': 'http://localhost/allocations/f850f0cc-6832-4763-860b-b9cb2da9de1a', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'e80d2ebc-21d3-4919-a255-1028063ac8cf', 'created_at': '2024-01-06T10:56:43.969743+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/e80d2ebc-21d3-4919-a255-1028063ac8cf', 'rel': 'self'}, {'href': 'http://localhost/allocations/e80d2ebc-21d3-4919-a255-1028063ac8cf', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '4bb1b2c7-504f-49f2-9010-db90602e3fee', 'created_at': '2024-01-06T10:56:43.971684+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/4bb1b2c7-504f-49f2-9010-db90602e3fee', 'rel': 'self'}, {'href': 'http://localhost/allocations/4bb1b2c7-504f-49f2-9010-db90602e3fee', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'e3333f76-bc7b-4a04-908e-b42b23610c15', 'created_at': '2024-01-06T10:56:43.973644+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/e3333f76-bc7b-4a04-908e-b42b23610c15', 'rel': 'self'}, {'href': 'http://localhost/allocations/e3333f76-bc7b-4a04-908e-b42b23610c15', 'rel': 'bookmark'}], 'node_uuid': None}]} -GET: /v1/allocations/4afd7476-13d5-4b07-8dd7-30c21d17e408 {} -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_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_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.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/deploy_templates/CUSTOM_DT1 -GOT:Response: 204 No Content -Openstack-Request-Id: req-605fee91-05d6-4e19-95ec-54dff548abb8 +Openstack-Request-Id: req-e6207315-e70b-4e29-829c-8a4ef49ce61a 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/blah -GOT:Response: 404 Not Found +{"uuid": "62fb573d-e702-4418-926f-ad4465f9fdd0", "created_at": "2025-02-07T17:32:57.814638+00:00", "updated_at": "2025-02-07T17:32:57.878888+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/62fb573d-e702-4418-926f-ad4465f9fdd0", "rel": "self"}, {"href": "http://localhost/allocations/62fb573d-e702-4418-926f-ad4465f9fdd0", "rel": "bookmark"}], "node_uuid": null} +PATCH: /v1/allocations/94556100-8c28-4ca3-963c-c9da1661fee8 [{'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-fcc5b61e-e69d-4e18-ae48-1a8582a5ad6c -X-Openstack-Ironic-Api-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-9f958028-f40f-4718-8194-e8fa16ca85dc +Openstack-Request-Id: req-8d9104fd-9f4e-4577-9d31-6c33ca966f48 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/8dd5cd37-f794-4c0d-9d02-f77403fc7339 -GOT:Response: 204 No Content -Openstack-Request-Id: req-4c529abc-7c54-4dfb-a64f-fe9629f14dc5 +{"uuid": "94556100-8c28-4ca3-963c-c9da1661fee8", "created_at": "2025-02-07T17:32:58.392207+00:00", "updated_at": "2025-02-07T17:32:58.407462+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/94556100-8c28-4ca3-963c-c9da1661fee8", "rel": "self"}, {"href": "http://localhost/allocations/94556100-8c28-4ca3-963c-c9da1661fee8", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/94556100-8c28-4ca3-963c-c9da1661fee8 {} +GOT:{'uuid': '94556100-8c28-4ca3-963c-c9da1661fee8', 'created_at': '2025-02-07T17:32:58.392207+00:00', 'updated_at': '2025-02-07T17:32:58.407462+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/94556100-8c28-4ca3-963c-c9da1661fee8', 'rel': 'self'}, {'href': 'http://localhost/allocations/94556100-8c28-4ca3-963c-c9da1661fee8', 'rel': 'bookmark'}], 'node_uuid': None} +PATCH: /v1/allocations/0d53e0c2-73c3-44b6-be19-ddc39c5a5968 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-4497514c-a2d5-4610-b97f-d10023a79623 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/e3e99fff-80ab-405c-84a4-b2bb7f34dd33.json -GOT:Response: 204 No Content -Openstack-Request-Id: req-2ef87680-6d64-4ef8-bbd7-422a6e4fbf7a +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: name, extra\", \"debuginfo\": null}"} +PATCH: /v1/allocations/afa68ac0-1146-4b8a-a68d-34d84139b496 [{'path': '/extra/foo2', 'op': 'remove'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-f4741768-5505-40e3-a669-dd920774d86b 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/a4f3c3c7-7d25-4010-bf29-5bf5f99aaba7 -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\"}"} +{"uuid": "afa68ac0-1146-4b8a-a68d-34d84139b496", "created_at": "2025-02-07T17:32:58.848561+00:00", "updated_at": "2025-02-07T17:32:58.886684+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/afa68ac0-1146-4b8a-a68d-34d84139b496", "rel": "self"}, {"href": "http://localhost/allocations/afa68ac0-1146-4b8a-a68d-34d84139b496", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/afa68ac0-1146-4b8a-a68d-34d84139b496 {} +GOT:{'uuid': 'afa68ac0-1146-4b8a-a68d-34d84139b496', 'created_at': '2025-02-07T17:32:58.848561+00:00', 'updated_at': '2025-02-07T17:32:58.886684+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/afa68ac0-1146-4b8a-a68d-34d84139b496', 'rel': 'self'}, {'href': 'http://localhost/allocations/afa68ac0-1146-4b8a-a68d-34d84139b496', 'rel': 'bookmark'}], 'node_uuid': None} +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.TestDelete.test_delete_volume_connectors_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource ... 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.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.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_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_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_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.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_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.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 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'}]} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type {} -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'}]} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}]} POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} GOT:Response: 202 Accepted -Openstack-Request-Id: req-cb55087e-ecfe-4ce5-b4c2-5e87b9c0196d +Openstack-Request-Id: req-d4578008-bebe-49e3-9e33-4e3f00fc5f53 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-545f05f4-6a8a-43d8-b616-7c5f630cf2cf +Openstack-Request-Id: req-1d6d6137-b94b-47ef-9a65-0e54a375d2a5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -6852,7 +7040,7 @@ 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-79216908-7a2d-417d-a17e-6e6718b34789 +Openstack-Request-Id: req-dfed3a2b-4d82-414d-b0f7-b6c3f450abb4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -6862,7 +7050,7 @@ 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-ddf8f5c8-1005-422d-87c1-519db6cf7ba8 +Openstack-Request-Id: req-5a3c8ce9-64ee-4e70-80c0-d7c5b89135dc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -6873,7 +7061,7 @@ 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-8df5de0b-462e-4f84-bdc1-6bf39bddac7c +Openstack-Request-Id: req-1832f626-2054-4f27-9011-72b6ef297b1e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -6881,617 +7069,714 @@ 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-7a120054-f900-4f6c-b51f-88816de25f27 +Openstack-Request-Id: req-76e3d5c1-da4c-4838-8a0e-e3890b2ebee6 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'}]}]} +GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]}]} GET: /v1/drivers/fake-hardware-type {} -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'}]} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} -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'}]} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type-2 {} 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'}]}]} +GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]}]} GET: /v1/drivers?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'}]}]} +GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]}]} GET: /v1/drivers?detail=true&fields=name,hosts {} -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_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_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_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.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_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.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_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_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_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_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_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_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_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_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_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_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_driver.TestListDrivers.test_drivers_detail_bad_version_false -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false ... 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-06T10:56:43.443840+00:00', 'updated_at': '2024-01-06T10:56:43.443561+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-06T10:56:43.446141+00:00', 'updated_at': '2024-01-06T10:56:43.445892+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 +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-48f39a4b-2185-43aa-a2a7-b2cfa8abcb51 +Openstack-Request-Id: req-8521bb6c-883e-4549-9c88-e24d677cc663 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': '02ee6f99-fb97-45d8-a98f-375361a20a6d', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/02ee6f99-fb97-45d8-a98f-375361a20a6d', 'rel': 'self'}, {'href': 'http://localhost/conductors/02ee6f99-fb97-45d8-a98f-375361a20a6d', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '59a2e619-6336-496c-9140-72f342f24305', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/59a2e619-6336-496c-9140-72f342f24305', 'rel': 'self'}, {'href': 'http://localhost/conductors/59a2e619-6336-496c-9140-72f342f24305', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'a392c5af-cd78-44b3-9bb0-842a5daa5d13', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/a392c5af-cd78-44b3-9bb0-842a5daa5d13', 'rel': 'self'}, {'href': 'http://localhost/conductors/a392c5af-cd78-44b3-9bb0-842a5daa5d13', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'daf9ed20-7d9f-46d4-a1d4-8718285f2cc0', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/daf9ed20-7d9f-46d4-a1d4-8718285f2cc0', 'rel': 'self'}, {'href': 'http://localhost/conductors/daf9ed20-7d9f-46d4-a1d4-8718285f2cc0', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'e5a33437-fb4d-4925-ab93-fcc48ab6f635', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/e5a33437-fb4d-4925-ab93-fcc48ab6f635', 'rel': 'self'}, {'href': 'http://localhost/conductors/e5a33437-fb4d-4925-ab93-fcc48ab6f635', 'rel': 'bookmark'}], 'alive': True}]} -GET: /v1/conductors?sort_key=alive {} +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-e2dfcce6-9b89-44a6-a4c1-3505d8897011 +Openstack-Request-Id: req-0984b5d9-1d68-40f1-b273-7eb456d382d7 X-Openstack-Ironic-Api-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 +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 Content-Type: application/json -Openstack-Request-Id: req-a89284fd-7b53-49a0-9218-ac99a21bc866 +Openstack-Request-Id: req-2f5a7481-c9fe-4557-87f2-91aaa9483352 X-Openstack-Ironic-Api-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}"} -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-ed4d5de0-d622-486e-8ff2-1cc8814216a2 +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 {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-5576bd56-620e-46b9-a0ca-8b526d349434 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 +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-60b35bd9-8274-44b0-a5db-8c7ee50e9171 +Openstack-Request-Id: req-d31ee9ca-9cde-4e0f-a319-82b2cacddb9a X-Openstack-Ironic-Api-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\": \"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_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_node.TestPatch.test_replace_chassis_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid ... 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.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_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_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_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_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.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.TestPatch.test_remove_singular +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_singular ... 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.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_allocation.TestPost.test_create_allocation_owner +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner ... 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.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_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_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.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_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_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.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_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_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_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.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_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.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_deploy_template.TestPatch.test_replace_multi +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_multi ... 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.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_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_drivers_type_filter_bad_value +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value ... 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.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_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_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.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_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_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_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_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_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_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_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 GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-7013f6f2-2fd9-4d29-8496-fc1ffcb01405 +Openstack-Request-Id: req-e5c54d2c-885d-443b-94a7-c5491342918e X-Openstack-Ironic-Api-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-e0836ede-2785-40ec-a9a2-b52339685dbc +Openstack-Request-Id: req-a726d60a-d2cb-4b6c-9865-d8efd0c3a6cf 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-b12d206e-cfa1-40cb-89e7-0978873e6850 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:32:57.852988+00:00", "updated_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-a77ff215-7d21-4219-8506-1ae892ab4ce0 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-63fde587-f0f4-473f-9a67-59cb91bf3c81 +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'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-76981e2f-d758-4307-8d87-b56014a0dde8 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.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_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_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_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_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.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_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_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_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_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_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.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_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_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_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_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_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_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.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_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_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.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_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_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_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_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_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_driver.TestListDrivers.test_drivers_no_active_conductor -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_no_active_conductor ... ok -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 +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-5f394fdd-820f-44f3-8308-0e06572ddae9 +Openstack-Request-Id: req-043cef10-6d9d-45d0-b7b0-6cb2516be997 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': '6dc26a10-0092-4eec-bd70-0b096c7003f7', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/6dc26a10-0092-4eec-bd70-0b096c7003f7', 'rel': 'self'}, {'href': 'http://localhost/chassis/6dc26a10-0092-4eec-bd70-0b096c7003f7', 'rel': 'bookmark'}]}, {'uuid': 'a0cec3ba-b8fd-425a-ba54-f2f554e3e4e3', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/a0cec3ba-b8fd-425a-ba54-f2f554e3e4e3', 'rel': 'self'}, {'href': 'http://localhost/chassis/a0cec3ba-b8fd-425a-ba54-f2f554e3e4e3', 'rel': 'bookmark'}]}, {'uuid': 'a6062ae4-7c94-4846-a7c7-5532feadebfd', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/a6062ae4-7c94-4846-a7c7-5532feadebfd', 'rel': 'self'}, {'href': 'http://localhost/chassis/a6062ae4-7c94-4846-a7c7-5532feadebfd', 'rel': 'bookmark'}]}]} -GET: /v1/chassis?fields=extra&limit=2 {} -GOT:{'chassis': [{'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/98185d79-bfb2-4fd8-adb0-4e5e91e104f2', 'rel': 'self'}, {'href': 'http://localhost/chassis/98185d79-bfb2-4fd8-adb0-4e5e91e104f2', 'rel': 'bookmark'}]}, {'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e7a4759f-dec5-4869-87da-aac37e0232cc', 'rel': 'self'}, {'href': 'http://localhost/chassis/e7a4759f-dec5-4869-87da-aac37e0232cc', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra&limit=2&marker=e7a4759f-dec5-4869-87da-aac37e0232cc'} -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,extra {} -GOT:Response: 406 Not Acceptable +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:32:58.965468+00:00", "updated_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-849b5b62-ab37-405f-b2f8-ea7c4717d303 +Openstack-Request-Id: req-d99dcefe-9628-419e-a741-a0e5af33726a 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 {} +{"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-f293d766-220e-4090-be31-c6fd4691d5b6 +Openstack-Request-Id: req-77fa63ec-f736-46d7-a761-8965d2e163b6 +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}] +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.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.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 +PATCH: /v1/allocations/afa68ac0-1146-4b8a-a68d-34d84139b496 [{'path': '/extra', 'op': 'remove'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-2da2bc95-0dfa-4abc-a2f9-87ab01a58f70 X-Openstack-Ironic-Api-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': '2024-01-06T10:56:43.985665+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/ebca6669-2f0b-4d11-928b-c1a5ee9d48eb {} -GOT:{'uuid': 'ebca6669-2f0b-4d11-928b-c1a5ee9d48eb', 'created_at': '2024-01-06T10:56:44.121656+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/ebca6669-2f0b-4d11-928b-c1a5ee9d48eb', 'rel': 'self'}, {'href': 'http://localhost/chassis/ebca6669-2f0b-4d11-928b-c1a5ee9d48eb', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/ebca6669-2f0b-4d11-928b-c1a5ee9d48eb/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/ebca6669-2f0b-4d11-928b-c1a5ee9d48eb/nodes', 'rel': 'bookmark'}]]} -GET: /v1/chassis/ebca6669-2f0b-4d11-928b-c1a5ee9d48eb {} -GOT:{'uuid': 'ebca6669-2f0b-4d11-928b-c1a5ee9d48eb', 'created_at': '2024-01-06T10:56:44.121656+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/ebca6669-2f0b-4d11-928b-c1a5ee9d48eb', 'rel': 'self'}, {'href': 'http://localhost/chassis/ebca6669-2f0b-4d11-928b-c1a5ee9d48eb', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/ebca6669-2f0b-4d11-928b-c1a5ee9d48eb/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/ebca6669-2f0b-4d11-928b-c1a5ee9d48eb/nodes', 'rel': 'bookmark'}]]} -GET: /chassis/ebca6669-2f0b-4d11-928b-c1a5ee9d48eb {} -GOT:{'uuid': 'ebca6669-2f0b-4d11-928b-c1a5ee9d48eb', 'created_at': '2024-01-06T10:56:44.121656+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/ebca6669-2f0b-4d11-928b-c1a5ee9d48eb', 'rel': 'self'}, {'href': 'http://localhost/chassis/ebca6669-2f0b-4d11-928b-c1a5ee9d48eb', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/ebca6669-2f0b-4d11-928b-c1a5ee9d48eb/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/ebca6669-2f0b-4d11-928b-c1a5ee9d48eb/nodes', 'rel': 'bookmark'}]]} -GET: /v1/chassis/a96811e5-c025-479f-84df-9f0a6dbdcc5c {} -GOT:{'uuid': 'a96811e5-c025-479f-84df-9f0a6dbdcc5c', 'created_at': '2024-01-06T10:56:44.205601+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/a96811e5-c025-479f-84df-9f0a6dbdcc5c', 'rel': 'self'}, {'href': 'http://foo/chassis/a96811e5-c025-479f-84df-9f0a6dbdcc5c', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://foo/v1/chassis/a96811e5-c025-479f-84df-9f0a6dbdcc5c/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/a96811e5-c025-479f-84df-9f0a6dbdcc5c/nodes', 'rel': 'bookmark'}]]} -GET: /v1/chassis/a96811e5-c025-479f-84df-9f0a6dbdcc5c {} -GOT:{'uuid': 'a96811e5-c025-479f-84df-9f0a6dbdcc5c', 'created_at': '2024-01-06T10:56:44.205601+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/a96811e5-c025-479f-84df-9f0a6dbdcc5c', 'rel': 'self'}, {'href': 'http://foo/chassis/a96811e5-c025-479f-84df-9f0a6dbdcc5c', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://foo/v1/chassis/a96811e5-c025-479f-84df-9f0a6dbdcc5c/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/a96811e5-c025-479f-84df-9f0a6dbdcc5c/nodes', 'rel': 'bookmark'}]]} -GET: /chassis/a96811e5-c025-479f-84df-9f0a6dbdcc5c {} -GOT:{'uuid': 'a96811e5-c025-479f-84df-9f0a6dbdcc5c', 'created_at': '2024-01-06T10:56:44.205601+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/a96811e5-c025-479f-84df-9f0a6dbdcc5c', 'rel': 'self'}, {'href': 'http://foo/chassis/a96811e5-c025-479f-84df-9f0a6dbdcc5c', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://foo/v1/chassis/a96811e5-c025-479f-84df-9f0a6dbdcc5c/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/a96811e5-c025-479f-84df-9f0a6dbdcc5c/nodes', 'rel': 'bookmark'}]]} -GET: /v1/chassis {} -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_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_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_driver.TestListDrivers.test_drivers_type_filter_bad_value -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value ... INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 -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.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_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_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.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_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_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_event.TestPost.test_network_port_event_invalid_status -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_status ... 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_allocation.TestListAllocations.test_empty -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_empty ... 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 +{"uuid": "afa68ac0-1146-4b8a-a68d-34d84139b496", "created_at": "2025-02-07T17:32:58.848561+00:00", "updated_at": "2025-02-07T17:32:58.930435+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/afa68ac0-1146-4b8a-a68d-34d84139b496", "rel": "self"}, {"href": "http://localhost/allocations/afa68ac0-1146-4b8a-a68d-34d84139b496", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/afa68ac0-1146-4b8a-a68d-34d84139b496 {} +GOT:{'uuid': 'afa68ac0-1146-4b8a-a68d-34d84139b496', 'created_at': '2025-02-07T17:32:58.848561+00:00', 'updated_at': '2025-02-07T17:32:58.930435+00:00', 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/afa68ac0-1146-4b8a-a68d-34d84139b496', 'rel': 'self'}, {'href': 'http://localhost/allocations/afa68ac0-1146-4b8a-a68d-34d84139b496', 'rel': 'bookmark'}], 'node_uuid': None} +PATCH: /v1/allocations/1fafea2f-251c-4fd5-b9ff-bdf760a6a604 [{'path': '/extra/non-existent', 'op': 'remove'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-44bd9f5b-75f1-4cbc-b45f-b11d38d8db05 +X-Openstack-Ironic-Api-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/9cee5bbc-e18d-4aaa-bc42-3154ad567b79 [{'path': '/extra/a', 'op': 'remove'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-350212a5-69c2-4ac9-8ec4-e7cc66c927d3 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "9cee5bbc-e18d-4aaa-bc42-3154ad567b79", "created_at": "2025-02-07T17:32:59.290056+00:00", "updated_at": "2025-02-07T17:32:59.311641+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/9cee5bbc-e18d-4aaa-bc42-3154ad567b79", "rel": "self"}, {"href": "http://localhost/allocations/9cee5bbc-e18d-4aaa-bc42-3154ad567b79", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/9cee5bbc-e18d-4aaa-bc42-3154ad567b79 {} +GOT:{'uuid': '9cee5bbc-e18d-4aaa-bc42-3154ad567b79', 'created_at': '2025-02-07T17:32:59.290056+00:00', 'updated_at': '2025-02-07T17:32:59.311641+00:00', 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/9cee5bbc-e18d-4aaa-bc42-3154ad567b79', 'rel': 'self'}, {'href': 'http://localhost/allocations/9cee5bbc-e18d-4aaa-bc42-3154ad567b79', 'rel': 'bookmark'}], 'node_uuid': None} +PATCH: /v1/allocations/355afbb0-19fe-417e-a23a-bd5fb93fd159 [{'path': '/uuid', 'op': 'remove'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-88886d41-d957-4407-888b-ca1374133afd +X-Openstack-Ironic-Api-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/94b41ce8-6d1e-4a14-8467-239515f4202f [{'path': '/name', 'value': '[test]', 'op': 'replace'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-aa30bd59-546f-4eb1-b469-236af724c829 +X-Openstack-Ironic-Api-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/e0b18df2-b49a-4627-8cc2-a95f79aa7759 [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-74bb0322-3d8d-4057-b6dc-ac9325c8e19a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "e0b18df2-b49a-4627-8cc2-a95f79aa7759", "created_at": "2025-02-07T17:32:59.777055+00:00", "updated_at": "2025-02-07T17:32:59.814433+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/e0b18df2-b49a-4627-8cc2-a95f79aa7759", "rel": "self"}, {"href": "http://localhost/allocations/e0b18df2-b49a-4627-8cc2-a95f79aa7759", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/e0b18df2-b49a-4627-8cc2-a95f79aa7759 {} +GOT:{'uuid': 'e0b18df2-b49a-4627-8cc2-a95f79aa7759', 'created_at': '2025-02-07T17:32:59.777055+00:00', 'updated_at': '2025-02-07T17:32:59.814433+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/e0b18df2-b49a-4627-8cc2-a95f79aa7759', 'rel': 'self'}, {'href': 'http://localhost/allocations/e0b18df2-b49a-4627-8cc2-a95f79aa7759', 'rel': 'bookmark'}], 'node_uuid': None} +PATCH: /v1/allocations/1eac68cc-ac3f-4ba1-87d3-8b8f54342c3c [{'path': '/name', 'value': None, 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-7597be80-4a49-4ca4-a811-a45fe36054b9 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1eac68cc-ac3f-4ba1-87d3-8b8f54342c3c", "created_at": "2025-02-07T17:32:59.939176+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/1eac68cc-ac3f-4ba1-87d3-8b8f54342c3c", "rel": "self"}, {"href": "http://localhost/allocations/1eac68cc-ac3f-4ba1-87d3-8b8f54342c3c", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/1eac68cc-ac3f-4ba1-87d3-8b8f54342c3c {} +GOT:{'uuid': '1eac68cc-ac3f-4ba1-87d3-8b8f54342c3c', 'created_at': '2025-02-07T17:32:59.939176+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/1eac68cc-ac3f-4ba1-87d3-8b8f54342c3c', 'rel': 'self'}, {'href': 'http://localhost/allocations/1eac68cc-ac3f-4ba1-87d3-8b8f54342c3c', 'rel': 'bookmark'}], 'node_uuid': None} +PATCH: /v1/allocations/be5a7062-9ec5-4d41-9a8f-21878444c8cb [{'path': '/name', 'value': 'test', 'op': 'replace'}] +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.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.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_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_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_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_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_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_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_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_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.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.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_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_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.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_chassis.TestListChassis.test_sort_key_invalid -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key_invalid ... ok -GOT:Response: 409 Conflict +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_deploy_template.TestPatch.test_update_by_id +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id ... ok +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-5aeda283-3afa-4bc4-af02-7d2bda4ed44d +Openstack-Request-Id: req-043ec9ab-8b87-4126-8a2c-e78a28c1af78 X-Openstack-Ironic-Api-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'} +{"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': '560b7931-75b0-4b95-8ca3-7630e09f0826', 'owner': None} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-51e534d0-bd74-4afb-9b28-2a26bcae37d5 +Location: http://localhost/v1/allocations/560b7931-75b0-4b95-8ca3-7630e09f0826 +Openstack-Request-Id: req-9666e86f-106c-4f3b-9479-0265ecd2ce8d 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-06T10:56:44.045359+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-06T10:56:44.045359+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'} +{"uuid": "560b7931-75b0-4b95-8ca3-7630e09f0826", "created_at": "2025-02-07T17:32:59.007375+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/560b7931-75b0-4b95-8ca3-7630e09f0826", "rel": "self"}, {"href": "http://localhost/allocations/560b7931-75b0-4b95-8ca3-7630e09f0826", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/560b7931-75b0-4b95-8ca3-7630e09f0826 {} +GOT:{'uuid': '560b7931-75b0-4b95-8ca3-7630e09f0826', 'created_at': '2025-02-07T17:32:59.007375+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/560b7931-75b0-4b95-8ca3-7630e09f0826', 'rel': 'self'}, {'href': 'http://localhost/allocations/560b7931-75b0-4b95-8ca3-7630e09f0826', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'traits': [], 'uuid': '5f00129b-d529-48ae-965d-83c07f56fc80', 'owner': None} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-827b520c-2951-4dae-917a-290f15eea46a +X-Openstack-Ironic-Api-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': '85371c6b-fdff-4048-a849-f3e628429683', 'owner': '12345'} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-609b4d37-f4c0-4b2b-9cb4-c070a00f7856 +Location: http://localhost/v1/allocations/85371c6b-fdff-4048-a849-f3e628429683 +Openstack-Request-Id: req-2e46c97f-183a-42aa-85b9-0fdc42ea487b 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-06T10:56:44.135755+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/targets/?limit=3 {} -GOT:{'targets': [{'uuid': '5d3f1dc3-b571-4d2b-bef2-227cd2071ade', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/5d3f1dc3-b571-4d2b-bef2-227cd2071ade', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/5d3f1dc3-b571-4d2b-bef2-227cd2071ade', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'cfda7ef2-49b0-4ef3-8915-6ca8bbb1e031', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/cfda7ef2-49b0-4ef3-8915-6ca8bbb1e031', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/cfda7ef2-49b0-4ef3-8915-6ca8bbb1e031', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '5bb6b7ac-b08d-4825-b7db-b87b108c8731', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/5bb6b7ac-b08d-4825-b7db-b87b108c8731', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/5bb6b7ac-b08d-4825-b7db-b87b108c8731', '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=5bb6b7ac-b08d-4825-b7db-b87b108c8731'} -GET: /v1/volume/targets?fields=uuid,extra {} -GOT:{'targets': [{'uuid': 'd6b64919-d6d9-450d-96e4-0da5134ef5ac', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/d6b64919-d6d9-450d-96e4-0da5134ef5ac', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/d6b64919-d6d9-450d-96e4-0da5134ef5ac', 'rel': 'bookmark'}]}, {'uuid': '1abb5a1f-0ea9-4720-97ba-4be98b9ad46b', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/1abb5a1f-0ea9-4720-97ba-4be98b9ad46b', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1abb5a1f-0ea9-4720-97ba-4be98b9ad46b', 'rel': 'bookmark'}]}, {'uuid': '32dbd418-57d6-48b7-8e51-98f5d3eb1e80', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/32dbd418-57d6-48b7-8e51-98f5d3eb1e80', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/32dbd418-57d6-48b7-8e51-98f5d3eb1e80', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=32dbd418-57d6-48b7-8e51-98f5d3eb1e80'} -GET: /v1/volume/targets {} -GOT:{'targets': [{'uuid': 'e6068bcb-8178-4f90-bf61-5a2ec843c77a', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/e6068bcb-8178-4f90-bf61-5a2ec843c77a', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/e6068bcb-8178-4f90-bf61-5a2ec843c77a', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '146e3a8d-a51c-4faa-a4df-bf457e5c18ff', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/146e3a8d-a51c-4faa-a4df-bf457e5c18ff', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/146e3a8d-a51c-4faa-a4df-bf457e5c18ff', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'eae5c7c0-f8eb-4fac-8d62-1343d476fc56', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/eae5c7c0-f8eb-4fac-8d62-1343d476fc56', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/eae5c7c0-f8eb-4fac-8d62-1343d476fc56', '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=eae5c7c0-f8eb-4fac-8d62-1343d476fc56'} -GET: /v1/volume/targets?detail=True&limit=3 {} -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 -PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} +{"uuid": "85371c6b-fdff-4048-a849-f3e628429683", "created_at": "2025-02-07T17:32:59.382543+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/85371c6b-fdff-4048-a849-f3e628429683", "rel": "self"}, {"href": "http://localhost/allocations/85371c6b-fdff-4048-a849-f3e628429683", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/85371c6b-fdff-4048-a849-f3e628429683 {} +GOT:{'uuid': '85371c6b-fdff-4048-a849-f3e628429683', 'created_at': '2025-02-07T17:32:59.382543+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/85371c6b-fdff-4048-a849-f3e628429683', 'rel': 'self'}, {'href': 'http://localhost/allocations/85371c6b-fdff-4048-a849-f3e628429683', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'e237b294-2e7d-4d4f-8b4b-751fd673999d', 'owner': None} +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/allocations/e237b294-2e7d-4d4f-8b4b-751fd673999d +Openstack-Request-Id: req-45feb226-b543-4149-b9d7-e462a74455b1 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "e237b294-2e7d-4d4f-8b4b-751fd673999d", "created_at": "2025-02-07T17:32:59.553786+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/e237b294-2e7d-4d4f-8b4b-751fd673999d", "rel": "self"}, {"href": "http://localhost/allocations/e237b294-2e7d-4d4f-8b4b-751fd673999d", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/e237b294-2e7d-4d4f-8b4b-751fd673999d {} +GOT:{'uuid': 'e237b294-2e7d-4d4f-8b4b-751fd673999d', 'created_at': '2025-02-07T17:32:59.553786+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/e237b294-2e7d-4d4f-8b4b-751fd673999d', 'rel': 'self'}, {'href': 'http://localhost/allocations/e237b294-2e7d-4d4f-8b4b-751fd673999d', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'cad2e690-a1b5-4842-9ae4-d3a0fcd490dc', 'owner': '12345'} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-30ff0c7b-8ff6-48cd-b536-a7119639895f +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': 'd91cd999-2dbe-482c-a647-8808cf60600f', 'owner': '12345'} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-ab6f9a31-f1b8-4e17-a2c3-c2422c652eef +X-Openstack-Ironic-Api-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': '5a06a617-b1e2-4378-b041-1a9e3cf83d13', 'owner': None} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-5c0b6cb6-0bf6-48c1-a6f8-28ae43b80ea8 +X-Openstack-Ironic-Api-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': '9fa03674-34e5-498d-858c-95f6c6be5a00', 'owner': None} +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GOT:Response: 409 Conflict +Content-Type: application/json +Openstack-Request-Id: req-6d7f2c6e-cfc5-496e-980e-0a46468cc3a9 +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 -Location: http://localhost/v1/nodes/node-39/traits/CUSTOM_3 -Openstack-Request-Id: req-044aa5c1-d772-4555-baf2-6e0719b03f9a +Openstack-Request-Id: req-73142937-8a59-4e87-9065-25d5d4910168 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.37 +X-Openstack-Ironic-Api-Version: 1.1 -PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} -GOT:Response: 409 Conflict +DELETE: /v1/nodes/foo.1 +GOT:Response: 204 No Content +Openstack-Request-Id: req-fa5c54d3-d2ef-4ef5-8948-d93819ebcac0 +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 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d0c44e94-a06e-430a-8410-6111d3dcaf5e +Openstack-Request-Id: req-b7db9b17-1f66-452e-b958-30498f003a9d 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 {} +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-f27af584-0830-4412-9f74-4cae3283440b +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-76cdf736-8cf1-4ce5-9b70-55b5e32aeb23 +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-fbb7b892-9539-4c87-8f05-ab616c1f5440 +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 Content-Type: application/json -Openstack-Request-Id: req-1310d1e9-9670-4223-b164-5fa7ea902ecf +Openstack-Request-Id: req-bfbd0791-43b0-4399-a69b-d3aeae0fc811 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.37 +X-Openstack-Ironic-Api-Version: 1.1 {"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 +DELETE: /v1/nodes/foo +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9f637070-7d43-47e9-8bb7-762f6b54afea +Openstack-Request-Id: req-5d1a245e-9c57-4e5b-9b61-05fae7c44c1f 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.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 -{"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-451e0f93-6e79-4cf7-bd8a-620992031bdb +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-c74d960a-c248-4257-8560-1fb5bcb3539e +Openstack-Request-Id: req-1f4786c5-2947-40f2-8beb-8c744b57771d 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 {} +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-6d7d8c3b-5ff2-4229-adb1-310f6fd646c4 +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 GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-a147f591-4928-4e04-b25d-24c135554b46 +Openstack-Request-Id: req-93f41c8d-c839-464c-bde3-c123b2bf0e7c 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-22d719c1-d9ad-43e6-87f6-9f1934b0032b +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 +Content-Type: application/json +Openstack-Request-Id: req-a87f114d-92af-4fd8-a1f2-fd733abdb6ee 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 -GOT:Response: 404 Not Found +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-875652b1-8d97-4a84-a5c4-36a8913a4522 +Openstack-Request-Id: req-89c614ca-ede0-443c-aa8a-a92fef02f550 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-769a80e0-115a-48b2-b79b-b1f7073dd169 +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 +Content-Type: application/json +Openstack-Request-Id: req-7d532502-cf35-4508-b5c9-e01629b3d5bd 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 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} GOT:Response: 204 No Content -Openstack-Request-Id: req-42cd1b16-0d87-4a8c-9ca2-0a872be8fbeb +Location: http://localhost/v1/nodes/node-39/traits/CUSTOM_3 +Openstack-Request-Id: req-e383933f-9adc-454c-8168-105ea2bbe5dc 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 +PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-b22cab4b-f0a1-4ca9-b634-ab67dcf9cfbd +Openstack-Request-Id: req-eee7a42b-7524-4a9c-a127-a3e2476ceec7 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 +PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-98414512-8e7a-4505-8498-95b069157c21 +Openstack-Request-Id: req-4b5af462-bbca-4d64-98a8-866d0b3bd500 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 +PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-76a90d11-5024-414b-a984-6528aaa60198 +Openstack-Request-Id: req-ec698515-7f06-40d0-977a-2ad0168395b5 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 +{"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 {} +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 +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d85cd09a-9562-42cb-92b3-44b355477582 +Openstack-Request-Id: req-07abda1b-b18b-43d6-8b50-8cd4a9ec93cb 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.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/d10d4512-9790-4048-aa52-fc6f8fa5afab [{'path': '/steps', 'op': 'replace', 'value': []}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-87a0fb87-7be1-4434-a728-11b2f11f3b65 +Openstack-Request-Id: req-3fc1b123-51b2-4b72-a539-219547979a71 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.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/be03c42e-30b4-48a9-a658-67cf9d5490f1 [{'path': '/name', 'op': 'replace', 'value': None}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6e70de01-202d-44ce-bfc7-dbbc0450dcda +Openstack-Request-Id: req-9b76f6dd-a45c-4bc6-8196-9c711a9c1b86 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'} +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/67657433-a357-4d17-ad9d-4a8209fbd15b [{'path': '/name', 'op': 'replace', 'value': 'not-a-trait'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-b517197d-ec1b-4484-ab9d-24539815267c +Openstack-Request-Id: req-a2c09b26-1f4f-4e29-ac40-62ccf6386e24 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']} -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_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_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.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_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_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_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_false -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false ... 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_node.TestTraits.test_set_all_traits_with_chassis -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_with_chassis ... 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 +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/dd490f95-820e-4e86-9303-e6cffcac22f8 [{'path': '/name', 'op': 'replace', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-a371a438-b6d2-4b76-a8a7-ed863f0e8573 +Openstack-Request-Id: req-8cc40d67-842b-4875-9f04-cb477fe7dde7 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 +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/7ebc42db-181c-4549-bfa4-a3ce548b7dac [{'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-ddb064b5-398d-4e84-b4fa-7d45042c6ad0 +Openstack-Request-Id: req-5d2e3cd5-a3e7-4f0c-a7a3-0d1d44c2d5c8 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}"} -GET: /v1/nodes?associated=blah {} -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/b66a88df-d41f-4698-8804-8934c0820435 [{'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-a2dee38a-8a15-4d06-98dd-567c81e664de +Openstack-Request-Id: req-a9564b28-1610-4476-aced-17a2b392a628 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 {} -GOT:{'nodes': [{'uuid': 'e01052e6-f345-4a38-a508-81f148b43947', 'instance_uuid': 'e30f670f-a0c3-4986-87d4-b0e4b128ab1f', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/e01052e6-f345-4a38-a508-81f148b43947', 'rel': 'self'}, {'href': 'http://localhost/nodes/e01052e6-f345-4a38-a508-81f148b43947', 'rel': 'bookmark'}]}, {'uuid': '28ca48df-809e-48ca-9882-11818b2b9c70', 'instance_uuid': '717fb212-fdda-4f9a-aed9-78e9de3a7571', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/28ca48df-809e-48ca-9882-11818b2b9c70', 'rel': 'self'}, {'href': 'http://localhost/nodes/28ca48df-809e-48ca-9882-11818b2b9c70', 'rel': 'bookmark'}]}, {'uuid': '57b5aa11-1fad-415f-8351-5fa72f05c00b', 'instance_uuid': '9d3aed28-e492-475b-908b-4238b2792a83', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/57b5aa11-1fad-415f-8351-5fa72f05c00b', 'rel': 'self'}, {'href': 'http://localhost/nodes/57b5aa11-1fad-415f-8351-5fa72f05c00b', 'rel': 'bookmark'}]}, {'uuid': 'e9c0eb2d-9bbb-4a73-94c4-ed0a5e19d983', 'instance_uuid': 'dd9d2a55-5afa-400b-bd4a-cc4c176f0d35', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/e9c0eb2d-9bbb-4a73-94c4-ed0a5e19d983', 'rel': 'self'}, {'href': 'http://localhost/nodes/e9c0eb2d-9bbb-4a73-94c4-ed0a5e19d983', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?associated=True {} -GOT:{'nodes': [{'uuid': 'e01052e6-f345-4a38-a508-81f148b43947', 'instance_uuid': 'e30f670f-a0c3-4986-87d4-b0e4b128ab1f', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/e01052e6-f345-4a38-a508-81f148b43947', 'rel': 'self'}, {'href': 'http://localhost/nodes/e01052e6-f345-4a38-a508-81f148b43947', 'rel': 'bookmark'}]}, {'uuid': '28ca48df-809e-48ca-9882-11818b2b9c70', 'instance_uuid': '717fb212-fdda-4f9a-aed9-78e9de3a7571', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/28ca48df-809e-48ca-9882-11818b2b9c70', 'rel': 'self'}, {'href': 'http://localhost/nodes/28ca48df-809e-48ca-9882-11818b2b9c70', 'rel': 'bookmark'}]}, {'uuid': '57b5aa11-1fad-415f-8351-5fa72f05c00b', 'instance_uuid': '9d3aed28-e492-475b-908b-4238b2792a83', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/57b5aa11-1fad-415f-8351-5fa72f05c00b', 'rel': 'self'}, {'href': 'http://localhost/nodes/57b5aa11-1fad-415f-8351-5fa72f05c00b', 'rel': 'bookmark'}]}, {'uuid': 'e9c0eb2d-9bbb-4a73-94c4-ed0a5e19d983', 'instance_uuid': 'dd9d2a55-5afa-400b-bd4a-cc4c176f0d35', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/e9c0eb2d-9bbb-4a73-94c4-ed0a5e19d983', 'rel': 'self'}, {'href': 'http://localhost/nodes/e9c0eb2d-9bbb-4a73-94c4-ed0a5e19d983', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/?limit=3 {} -GOT:{'nodes': [{'uuid': '69dc07a1-c13f-481d-a338-0827f579a206', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/69dc07a1-c13f-481d-a338-0827f579a206', 'rel': 'self'}, {'href': 'http://localhost/nodes/69dc07a1-c13f-481d-a338-0827f579a206', 'rel': 'bookmark'}]}, {'uuid': '60ee9905-e3f5-4ee3-92eb-4b8a446d638d', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/60ee9905-e3f5-4ee3-92eb-4b8a446d638d', 'rel': 'self'}, {'href': 'http://localhost/nodes/60ee9905-e3f5-4ee3-92eb-4b8a446d638d', 'rel': 'bookmark'}]}, {'uuid': '5830ce39-b89e-4cf4-8c31-213780529957', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/5830ce39-b89e-4cf4-8c31-213780529957', 'rel': 'self'}, {'href': 'http://localhost/nodes/5830ce39-b89e-4cf4-8c31-213780529957', '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=5830ce39-b89e-4cf4-8c31-213780529957'} -GET: /v1/nodes?fields=driver_info,uuid {} -GOT:{'nodes': [{'uuid': '199d7744-fbdf-4162-971b-efa617a64f63', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/199d7744-fbdf-4162-971b-efa617a64f63', 'rel': 'self'}, {'href': 'http://localhost/nodes/199d7744-fbdf-4162-971b-efa617a64f63', 'rel': 'bookmark'}]}, {'uuid': '6359fb44-fbbe-4bbb-86e9-1634a5a81af9', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/6359fb44-fbbe-4bbb-86e9-1634a5a81af9', 'rel': 'self'}, {'href': 'http://localhost/nodes/6359fb44-fbbe-4bbb-86e9-1634a5a81af9', 'rel': 'bookmark'}]}, {'uuid': 'c0e0ecf2-cc54-4144-8dd6-8401f8dafa8d', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/c0e0ecf2-cc54-4144-8dd6-8401f8dafa8d', 'rel': 'self'}, {'href': 'http://localhost/nodes/c0e0ecf2-cc54-4144-8dd6-8401f8dafa8d', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=driver_info,uuid&limit=3&marker=c0e0ecf2-cc54-4144-8dd6-8401f8dafa8d'} -GET: /v1/nodes {} -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 -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 -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_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_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_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.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.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_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path ... ok +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "b66a88df-d41f-4698-8804-8934c0820435", "created_at": "2025-02-07T17:32:59.619008+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/b66a88df-d41f-4698-8804-8934c0820435", "rel": "self"}, {"href": "http://localhost/deploy_templates/b66a88df-d41f-4698-8804-8934c0820435", "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/f1a6c881-c855-4960-9c9d-baf6ba6146a3 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] +GOT:Response: 409 Conflict +Content-Type: application/json +Openstack-Request-Id: req-30262c61-46e7-4b6b-840c-e6bd924a4795 +X-Openstack-Ironic-Api-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 f1a6c881-c855-4960-9c9d-baf6ba6146a3 already exists.\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/42011642-88bc-4bbf-89a9-da7c8a8e4b47 [{'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-d87aefc3-3946-45d7-b5c5-8782ca1a215e +Openstack-Request-Id: req-c7faa5e3-53eb-4047-bc65-fab032dbfe2f 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 {} +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/f313f69e-8bd0-47cc-aead-21b0702168f0 [{'path': '/steps/0/interface', 'op': 'replace', 'value': 'foo'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6c810c7a-8ee2-41d9-bdf5-97ffaaedd060 +Openstack-Request-Id: req-82677f1a-7e91-44c1-a12c-5f70d3ac1723 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 +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/c3a625c7-5ec3-43f8-baad-5901f7931530 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-11198846-087f-47ea-806b-c0f061cd77f3 +Openstack-Request-Id: req-975782ba-1f64-43eb-bfb0-31ab205a5e82 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": "c3a625c7-5ec3-43f8-baad-5901f7931530", "created_at": "2025-02-07T17:33:00.326609+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/c3a625c7-5ec3-43f8-baad-5901f7931530", "rel": "self"}, {"href": "http://localhost/deploy_templates/c3a625c7-5ec3-43f8-baad-5901f7931530", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +PATCH: /v1/deploy_templates/1fd17175-e947-4664-a3bd-bb285ea156e0 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] +GOT:{'allocations': [{'uuid': 'be78ee7b-649d-410c-a5b5-08ed04baad95', 'created_at': '2025-02-07T17:32:57.869246+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/be78ee7b-649d-410c-a5b5-08ed04baad95', 'rel': 'self'}, {'href': 'http://localhost/allocations/be78ee7b-649d-410c-a5b5-08ed04baad95', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '431c5ee2-75fe-4ffe-a638-6dcca37813a8', 'created_at': '2025-02-07T17:32:57.870994+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/431c5ee2-75fe-4ffe-a638-6dcca37813a8', 'rel': 'self'}, {'href': 'http://localhost/allocations/431c5ee2-75fe-4ffe-a638-6dcca37813a8', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '0e29c8f9-45bb-4547-9fe8-3899d0ae39a1', 'created_at': '2025-02-07T17:32:57.881251+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/0e29c8f9-45bb-4547-9fe8-3899d0ae39a1', 'rel': 'self'}, {'href': 'http://localhost/allocations/0e29c8f9-45bb-4547-9fe8-3899d0ae39a1', 'rel': 'bookmark'}], 'node_uuid': None}]} +GET: /v1/allocations?owner=12345 {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-9d572c5f-9473-435f-a0c3-ead5b5b814f5 +Openstack-Request-Id: req-eedafa42-64f5-4115-8a11-576e63fed221 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 {} +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': 'dce1931c-e868-42c0-8a73-9f078c161e47', 'created_at': '2025-02-07T17:32:58.642257+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/dce1931c-e868-42c0-8a73-9f078c161e47', 'rel': 'self'}, {'href': 'http://localhost/allocations/dce1931c-e868-42c0-8a73-9f078c161e47', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '50681899-71bb-4d7c-b506-b4a77348527f', 'created_at': '2025-02-07T17:32:58.643753+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/50681899-71bb-4d7c-b506-b4a77348527f', 'rel': 'self'}, {'href': 'http://localhost/allocations/50681899-71bb-4d7c-b506-b4a77348527f', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '9e6c953e-21db-420b-a4c1-c3e11426aa70', 'created_at': '2025-02-07T17:32:58.645114+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/9e6c953e-21db-420b-a4c1-c3e11426aa70', 'rel': 'self'}, {'href': 'http://localhost/allocations/9e6c953e-21db-420b-a4c1-c3e11426aa70', 'rel': 'bookmark'}], 'node_uuid': None}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation {} +GOT:{'uuid': '70b9a0ad-48e4-4d46-abbe-87fd739bbe92', 'created_at': '2025-02-07T17:32:58.852658+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/70b9a0ad-48e4-4d46-abbe-87fd739bbe92', 'rel': 'self'}, {'href': 'http://localhost/allocations/70b9a0ad-48e4-4d46-abbe-87fd739bbe92', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation/25494979-3cc9-4879-8d17-306172857bab {} +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 -Openstack-Request-Id: req-3d4c347d-fdaa-46da-a7b5-ab390ac17535 +{"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/38f168de-2c23-475a-aee0-893c6d07e8b9', 'rel': 'self'}, {'href': 'http://localhost/allocations/38f168de-2c23-475a-aee0-893c6d07e8b9', 'rel': 'bookmark'}]} +GET: /v1/allocations?fields=uuid,extra {} +GOT:{'allocations': [{'uuid': '73ad014d-9bc0-4374-82e1-3360a7b36ffa', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/73ad014d-9bc0-4374-82e1-3360a7b36ffa', 'rel': 'self'}, {'href': 'http://localhost/allocations/73ad014d-9bc0-4374-82e1-3360a7b36ffa', 'rel': 'bookmark'}]}, {'uuid': 'cec90c3d-c3ce-4173-ad3b-df040582511d', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/cec90c3d-c3ce-4173-ad3b-df040582511d', 'rel': 'self'}, {'href': 'http://localhost/allocations/cec90c3d-c3ce-4173-ad3b-df040582511d', 'rel': 'bookmark'}]}, {'uuid': '5990b2a4-63d1-4b6d-9fe9-776ddf8f5435', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/5990b2a4-63d1-4b6d-9fe9-776ddf8f5435', 'rel': 'self'}, {'href': 'http://localhost/allocations/5990b2a4-63d1-4b6d-9fe9-776ddf8f5435', 'rel': 'bookmark'}]}]} +GET: /v1/allocations?fields=node_uuid&limit=2 {} +GOT:{'allocations': [{'links': [{'href': 'http://localhost/v1/allocations/e6575436-9301-4310-a6db-62df29107bbd', 'rel': 'self'}, {'href': 'http://localhost/allocations/e6575436-9301-4310-a6db-62df29107bbd', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'links': [{'href': 'http://localhost/v1/allocations/297aea64-1d97-4388-afb6-8fe3ea614fae', 'rel': 'self'}, {'href': 'http://localhost/allocations/297aea64-1d97-4388-afb6-8fe3ea614fae', '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=297aea64-1d97-4388-afb6-8fe3ea614fae'} +GET: /v1/allocations/9d3449f1-7285-4f11-bb5b-cb9ba3b44157?fields=uuid,spongebob {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-e710edeb-974c-4671-b1d7-5ead4d27ad5b 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 {} -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_network_interface': None, 'enabled_network_interfaces': [], 'default_deploy_interface': 'direct', 'enabled_deploy_interfaces': ['ansible', 'direct'], 'default_console_interface': None, 'enabled_console_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_power_interface': None, 'enabled_power_interfaces': []} +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} +GET: /v1/allocations/4256f9a2-5dec-4700-9bdb-8ff5c95a460f {} +GOT:{'uuid': '4256f9a2-5dec-4700-9bdb-8ff5c95a460f', 'created_at': '2025-02-07T17:33:00.126237+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/4256f9a2-5dec-4700-9bdb-8ff5c95a460f', 'rel': 'self'}, {'href': 'http://localhost/allocations/4256f9a2-5dec-4700-9bdb-8ff5c95a460f', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/allocations/b58b4f62-d3d3-4df7-a0d5-3a95f0bd5e9f?fields=resource_class,extra {} +GOT:{'extra': {}, 'resource_class': 'baremetal', 'links': [{'href': 'http://localhost/v1/allocations/b58b4f62-d3d3-4df7-a0d5-3a95f0bd5e9f', 'rel': 'self'}, {'href': 'http://localhost/allocations/b58b4f62-d3d3-4df7-a0d5-3a95f0bd5e9f', 'rel': 'bookmark'}]} +GET: /v1/allocations/e36ec331-b817-460a-aa65-8fb54c6a652f {} +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.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_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.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.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.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_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_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_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_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_allocation.TestPost.test_create_allocation_with_candidate_nodes +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_candidate_nodes ... ok +INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 +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_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.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 +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}], 'type': 'dynamic', 'default_power_interface': None, 'enabled_power_interfaces': [], 'default_console_interface': None, 'enabled_console_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_deploy_interface': 'direct', 'enabled_deploy_interfaces': ['ansible', 'direct'], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_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'}]} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} -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'}]} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type/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_network_interface': None, 'enabled_network_interfaces': [], 'default_deploy_interface': 'direct', 'enabled_deploy_interfaces': ['ansible', 'direct'], 'default_storage_interface': None, 'enabled_storage_interfaces': [], 'default_console_interface': None, 'enabled_console_interfaces': [], 'default_rescue_interface': None, 'enabled_rescue_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_bios_interface': None, 'enabled_bios_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_power_interface': None, 'enabled_power_interfaces': []} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}], 'type': 'dynamic', 'default_power_interface': None, 'enabled_power_interfaces': [], 'default_console_interface': None, 'enabled_console_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_rescue_interface': None, 'enabled_rescue_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_bios_interface': None, 'enabled_bios_interfaces': [], 'default_storage_interface': None, 'enabled_storage_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_deploy_interface': 'direct', 'enabled_deploy_interfaces': ['ansible', 'direct'], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_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'}]} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} -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'}]} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type/properties {} GET: /drivers/fake-hardware-type/properties {} GET: /v1/drivers {} @@ -7499,7 +7784,7 @@ GET: /v1/drivers?type=working {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-99ec5133-877f-4feb-934b-791271633819 +Openstack-Request-Id: req-861a1c25-2955-41a9-8220-0cd1a8dd5f26 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 @@ -7507,7 +7792,7 @@ GET: /v1/drivers?type=classic {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-2ff5d23e-febb-4742-aa1f-1f8f3a40b03f +Openstack-Request-Id: req-cf2a4296-491d-487f-bb78-ce17f5381e46 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 @@ -7515,680 +7800,930 @@ 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'}]} +GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}], 'type': 'dynamic'}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2/properties', 'rel': 'bookmark'}], 'type': 'dynamic'}]} GET: /v1/drivers {} -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 +GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}], 'type': 'dynamic'}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2/properties', 'rel': 'bookmark'}], 'type': 'dynamic'}]} +GET: /v1/drivers/fake-hardware-type {} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} +GET: /drivers/fake-hardware-type {} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} +GET: /v1/drivers/fake-hardware-type-2 {} +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_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_driver.TestListDrivers.test_drivers_with_dynamic_detailed ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed ... ok -GET: /v1/bad/path {} -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': '2024-01-06T10:56:42.451016+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-06T10:56:42.579321+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 +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.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_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.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_allocation.TestPatch.test_update_not_found +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_found ... 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.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_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_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.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_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.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_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.TestPatch.test_replace_provision_updated_at +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_provision_updated_at ... 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_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.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.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_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.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.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_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_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_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_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_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_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_node.TestTraits.test_delete_all_traits_with_chassis +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_with_chassis ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-53a54924-ee00-4bb8-95fd-e0691648b406 +Openstack-Request-Id: req-dfa27f44-84be-4d95-a3c6-bb5eafb015a8 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 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:32:59.855359+00:00", "updated_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 -{"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-06T10:56:42.898577+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 {} +Openstack-Request-Id: req-d76f09f4-4167-4c6f-a3c6-ad0e6159fd8e +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-07T17:33:00.308976+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-89e72f14-4456-4657-a71b-ec66c4fb73af +Openstack-Request-Id: req-df6fbe95-d325-4bb2-a22d-97baa4b0f4e3 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 {} -GOT:{'bios': [{'created_at': '2024-01-06T10:56:43.114759+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 {} +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'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-106d26b6-8dec-4d29-b38c-63d34982e43e +Openstack-Request-Id: req-bd1dafd3-71fd-4119-83c8-a2663e204569 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': '2024-01-06T10:56:43.305037+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.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/915b69a2-a34d-4ffc-8f6c-923a1152993c [{'path': '/boot_interface', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ba844b4e-dab4-473a-a25e-8b4df88ca064 +Openstack-Request-Id: req-4ebe0cb4-f788-4d3d-8080-21c0dcd22786 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': '2024-01-06T10:56:43.606695+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'}]}} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_id', 'value': '1', 'op': 'add'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "915b69a2-a34d-4ffc-8f6c-923a1152993c", "created_at": "2025-02-07T17:33:01.288897+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/915b69a2-a34d-4ffc-8f6c-923a1152993c", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/ports", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/states", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/volume", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c [{'path': '/console_interface', 'op': 'remove'}] +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_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_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.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_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_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_complex_step_args +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_complex_step_args ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b0cf9dd8-46f7-4191-a2fb-b800fb3a9dd7 +Openstack-Request-Id: req-a0e00c5e-f8a1-4bd3-8b9b-dbd9e9efa011 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.80 +{"uuid": "915b69a2-a34d-4ffc-8f6c-923a1152993c", "created_at": "2025-02-07T17:33:01.288897+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/915b69a2-a34d-4ffc-8f6c-923a1152993c", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/ports", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/states", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/volume", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c [{'path': '/deploy_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1f21f163-3ac0-425d-909b-f4cf1f334f19 +Openstack-Request-Id: req-305eaebb-4aec-431b-9295-fbef5faa9fdb 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-06T10:56:44.086999+00:00", "updated_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"}]} -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.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_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.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_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_volume_target.TestPatch.test_add_multi -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi ... ok -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "915b69a2-a34d-4ffc-8f6c-923a1152993c", "created_at": "2025-02-07T17:33:01.288897+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/915b69a2-a34d-4ffc-8f6c-923a1152993c", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/ports", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/states", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/volume", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c [{'path': '/inspect_interface', 'op': 'remove'}] +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 +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-1623f541-e2ed-401c-be52-418f9e677409 +Location: http://localhost/v1/allocations/9fa03674-34e5-498d-858c-95f6c6be5a00 +Openstack-Request-Id: req-662a15e7-7bee-42f1-91e4-8c5e339c9653 X-Openstack-Ironic-Api-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': '97676d12-2731-42b6-a6cc-bd8dec1e614b', 'owner': None} +{"uuid": "9fa03674-34e5-498d-858c-95f6c6be5a00", "created_at": "2025-02-07T17:33:00.425889+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/9fa03674-34e5-498d-858c-95f6c6be5a00", "rel": "self"}, {"href": "http://localhost/allocations/9fa03674-34e5-498d-858c-95f6c6be5a00", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/9fa03674-34e5-498d-858c-95f6c6be5a00 {} +GOT:{'uuid': '9fa03674-34e5-498d-858c-95f6c6be5a00', 'created_at': '2025-02-07T17:33:00.425889+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/9fa03674-34e5-498d-858c-95f6c6be5a00', 'rel': 'self'}, {'href': 'http://localhost/allocations/9fa03674-34e5-498d-858c-95f6c6be5a00', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/allocations {'candidate_nodes': ['node-1', '280ee9d1-eb68-4388-bea7-053695370bd9'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '21eafbeb-bc47-4a32-85ba-e3671ae857b1', 'owner': None} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/allocations/97676d12-2731-42b6-a6cc-bd8dec1e614b -Openstack-Request-Id: req-1f4751d5-cd5e-4d4a-a777-f68d940089ac +Location: http://localhost/v1/allocations/21eafbeb-bc47-4a32-85ba-e3671ae857b1 +Openstack-Request-Id: req-e519f56c-fabb-46cc-b751-aae8586a21ce X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "97676d12-2731-42b6-a6cc-bd8dec1e614b", "created_at": "2024-01-06T10:56:43.860931+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/97676d12-2731-42b6-a6cc-bd8dec1e614b", "rel": "self"}, {"href": "http://localhost/allocations/97676d12-2731-42b6-a6cc-bd8dec1e614b", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/97676d12-2731-42b6-a6cc-bd8dec1e614b {} -GOT:{'uuid': '97676d12-2731-42b6-a6cc-bd8dec1e614b', 'created_at': '2024-01-06T10:56:43.860931+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/97676d12-2731-42b6-a6cc-bd8dec1e614b', 'rel': 'self'}, {'href': 'http://localhost/allocations/97676d12-2731-42b6-a6cc-bd8dec1e614b', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'traits': [], 'uuid': 'aa4e84e4-ce71-4f90-a95f-120a319f5886', 'owner': None} -GOT:Response: 400 Bad Request +{"uuid": "21eafbeb-bc47-4a32-85ba-e3671ae857b1", "created_at": "2025-02-07T17:33:00.693678+00:00", "updated_at": null, "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "280ee9d1-eb68-4388-bea7-053695370bd9"], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/21eafbeb-bc47-4a32-85ba-e3671ae857b1", "rel": "self"}, {"href": "http://localhost/allocations/21eafbeb-bc47-4a32-85ba-e3671ae857b1", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/21eafbeb-bc47-4a32-85ba-e3671ae857b1 {} +GOT:{'uuid': '21eafbeb-bc47-4a32-85ba-e3671ae857b1', 'created_at': '2025-02-07T17:33:00.693678+00:00', 'updated_at': None, 'candidate_nodes': ['1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '280ee9d1-eb68-4388-bea7-053695370bd9'], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/21eafbeb-bc47-4a32-85ba-e3671ae857b1', 'rel': 'self'}, {'href': 'http://localhost/allocations/21eafbeb-bc47-4a32-85ba-e3671ae857b1', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/allocations {'candidate_nodes': [], 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'dbcdd33d-7c72-4280-a591-edabed7108de', 'owner': None} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-7d69e875-2aea-4792-ae1b-dfbc15f88382 +Location: http://localhost/v1/allocations/dbcdd33d-7c72-4280-a591-edabed7108de +Openstack-Request-Id: req-824c2654-4cf5-4e00-bcb9-c0b1a2fc04a1 X-Openstack-Ironic-Api-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': '8a30b7a1-cdda-417e-bfd3-2772f6a85955', 'owner': '12345'} +{"uuid": "dbcdd33d-7c72-4280-a591-edabed7108de", "created_at": "2025-02-07T17:33:00.853001+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/dbcdd33d-7c72-4280-a591-edabed7108de", "rel": "self"}, {"href": "http://localhost/allocations/dbcdd33d-7c72-4280-a591-edabed7108de", "rel": "bookmark"}], "node_uuid": null} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'CUSTOM_FOO_BAR'], 'uuid': '95c12980-5245-49e0-ac04-54ca4e95d936', 'owner': None} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/allocations/8a30b7a1-cdda-417e-bfd3-2772f6a85955 -Openstack-Request-Id: req-004f4ea9-77a5-400a-95cf-7a02f8e0b0a0 +Location: http://localhost/v1/allocations/95c12980-5245-49e0-ac04-54ca4e95d936 +Openstack-Request-Id: req-0048a63b-fab0-4835-985f-3619f7073f25 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "8a30b7a1-cdda-417e-bfd3-2772f6a85955", "created_at": "2024-01-06T10:56:44.041294+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/8a30b7a1-cdda-417e-bfd3-2772f6a85955", "rel": "self"}, {"href": "http://localhost/allocations/8a30b7a1-cdda-417e-bfd3-2772f6a85955", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/8a30b7a1-cdda-417e-bfd3-2772f6a85955 {} -GOT:{'uuid': '8a30b7a1-cdda-417e-bfd3-2772f6a85955', 'created_at': '2024-01-06T10:56:44.041294+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/8a30b7a1-cdda-417e-bfd3-2772f6a85955', 'rel': 'self'}, {'href': 'http://localhost/allocations/8a30b7a1-cdda-417e-bfd3-2772f6a85955', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '5195ceeb-16cb-48e0-9ddb-84c86b06ba86', 'owner': None} -GOT:Response: 201 Created +{"uuid": "95c12980-5245-49e0-ac04-54ca4e95d936", "created_at": "2025-02-07T17:33:01.133426+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/95c12980-5245-49e0-ac04-54ca4e95d936", "rel": "self"}, {"href": "http://localhost/allocations/95c12980-5245-49e0-ac04-54ca4e95d936", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/95c12980-5245-49e0-ac04-54ca4e95d936 {} +GOT:{'uuid': '95c12980-5245-49e0-ac04-54ca4e95d936', 'created_at': '2025-02-07T17:33:01.133426+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/95c12980-5245-49e0-ac04-54ca4e95d936', 'rel': 'self'}, {'href': 'http://localhost/allocations/95c12980-5245-49e0-ac04-54ca4e95d936', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'e90f53da-8baa-4ab3-898c-20a9215ab66d', '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': '4c05201f-3033-4d3f-b23a-2fce4990e62f', 'owner': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/allocations/5195ceeb-16cb-48e0-9ddb-84c86b06ba86 -Openstack-Request-Id: req-19ec5101-df43-4959-8d9a-5fc25c51f685 +Openstack-Request-Id: req-e7e79842-0876-428c-bdba-b77b256543f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5195ceeb-16cb-48e0-9ddb-84c86b06ba86", "created_at": "2024-01-06T10:56:44.115409+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/5195ceeb-16cb-48e0-9ddb-84c86b06ba86", "rel": "self"}, {"href": "http://localhost/allocations/5195ceeb-16cb-48e0-9ddb-84c86b06ba86", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/5195ceeb-16cb-48e0-9ddb-84c86b06ba86 {} -GOT:{'uuid': '5195ceeb-16cb-48e0-9ddb-84c86b06ba86', 'created_at': '2024-01-06T10:56:44.115409+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/5195ceeb-16cb-48e0-9ddb-84c86b06ba86', 'rel': 'self'}, {'href': 'http://localhost/allocations/5195ceeb-16cb-48e0-9ddb-84c86b06ba86', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '1c041915-f518-4a89-822f-0d420c3215a3', 'owner': '12345'} +{"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': '50d16ac7-0587-4b0c-877c-96ba3f7c03a2', 'owner': None} +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/allocations/50d16ac7-0587-4b0c-877c-96ba3f7c03a2 +Openstack-Request-Id: req-b97b8455-ffde-4f9b-8f72-75e9f08b2b25 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.60 +{"uuid": "50d16ac7-0587-4b0c-877c-96ba3f7c03a2", "created_at": "2025-02-07T17:33:01.584167+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/50d16ac7-0587-4b0c-877c-96ba3f7c03a2", "rel": "self"}, {"href": "http://localhost/allocations/50d16ac7-0587-4b0c-877c-96ba3f7c03a2", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/50d16ac7-0587-4b0c-877c-96ba3f7c03a2 {} +GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}], 'type': 'dynamic', 'default_power_interface': None, 'enabled_power_interfaces': [], 'default_console_interface': None, 'enabled_console_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_deploy_interface': 'direct', 'enabled_deploy_interfaces': ['ansible', 'direct'], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': []}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2/properties', 'rel': 'bookmark'}], 'type': 'dynamic', 'default_power_interface': None, 'enabled_power_interfaces': [], 'default_console_interface': None, 'enabled_console_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_deploy_interface': None, 'enabled_deploy_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': []}]} +GET: /v1/drivers/fake-hardware-type {} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} +GET: /drivers/fake-hardware-type {} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} +GET: /v1/drivers/fake-hardware-type-2 {} +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-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}], 'type': 'dynamic', 'default_power_interface': None, 'enabled_power_interfaces': [], 'default_console_interface': None, 'enabled_console_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_rescue_interface': None, 'enabled_rescue_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_bios_interface': None, 'enabled_bios_interfaces': [], 'default_storage_interface': None, 'enabled_storage_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_deploy_interface': 'direct', 'enabled_deploy_interfaces': ['ansible', 'direct'], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': []}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2/properties', 'rel': 'bookmark'}], 'type': 'dynamic', 'default_power_interface': None, 'enabled_power_interfaces': [], 'default_console_interface': None, 'enabled_console_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_rescue_interface': None, 'enabled_rescue_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_bios_interface': None, 'enabled_bios_interfaces': [], 'default_storage_interface': None, 'enabled_storage_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_deploy_interface': None, 'enabled_deploy_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': []}]} +GET: /v1/drivers/fake-hardware-type {} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} +GET: /drivers/fake-hardware-type {} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} +GET: /v1/drivers/fake-hardware-type-2 {} +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-835f56f2-efc9-4a86-83c6-46309a899682 +Openstack-Request-Id: req-dd7c51a1-c5df-43c0-b211-bb939acc06ed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.59 +X-Openstack-Ironic-Api-Version: 1.76 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'a0038a4f-5f2c-48c3-b9c9-1b763ea1cfd5', 'owner': '12345'} -GOT:Response: 403 Forbidden +GET: /v1/drivers/fake-hardware-type?fields=name,hosts {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-e25a5207-172d-4fb2-80f4-5dac2f5a6f93 +Openstack-Request-Id: req-0f331b45-e888-4112-ae0d-bc4910e72bc2 X-Openstack-Ironic-Api-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': '45788adc-4344-41fc-905e-2eeee9a5edcd', 'owner': None} -GOT:Response: 400 Bad Request +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-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} +GET: /v1/drivers/fake-hardware-type?fields=name,invalid {} +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_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_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_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_deploy_template.TestPatch.test_update_name_custom_trait +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_custom_trait ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-cf1fb102-c713-4526-8b95-32344841cde9 +Openstack-Request-Id: req-14d90456-2621-47c3-abce-87a0822d9761 X-Openstack-Ironic-Api-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': 'a8c07bf8-7307-4b8c-b08c-2aa0c977802b', 'owner': None} -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.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_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_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_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_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_volume_target.TestPatch.test_add_node_id -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_id ... ok -GOT:{'uuid': '4afd7476-13d5-4b07-8dd7-30c21d17e408', 'created_at': '2024-01-06T10:56:44.047772+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/4afd7476-13d5-4b07-8dd7-30c21d17e408', 'rel': 'self'}, {'href': 'http://localhost/allocations/4afd7476-13d5-4b07-8dd7-30c21d17e408', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/allocations/4afd7476-13d5-4b07-8dd7-30c21d17e408 {} -GOT:{'uuid': '4afd7476-13d5-4b07-8dd7-30c21d17e408', 'created_at': '2024-01-06T10:56:44.047772+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/4afd7476-13d5-4b07-8dd7-30c21d17e408', 'rel': 'self'}, {'href': 'http://localhost/allocations/4afd7476-13d5-4b07-8dd7-30c21d17e408', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/allocations/faf6f6e6-bf4c-4164-a7d6-d4407f09e42e {} -GOT:{'uuid': 'faf6f6e6-bf4c-4164-a7d6-d4407f09e42e', 'created_at': '2024-01-06T10:56:44.144568+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/faf6f6e6-bf4c-4164-a7d6-d4407f09e42e', 'rel': 'self'}, {'href': 'http://localhost/allocations/faf6f6e6-bf4c-4164-a7d6-d4407f09e42e', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/allocations/b6509ce2-3cb7-4cf8-aed2-de6a224e0bae {} -GOT:{'uuid': 'b6509ce2-3cb7-4cf8-aed2-de6a224e0bae', 'created_at': '2024-01-06T10:56:44.233592+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/b6509ce2-3cb7-4cf8-aed2-de6a224e0bae', 'rel': 'self'}, {'href': 'http://localhost/allocations/b6509ce2-3cb7-4cf8-aed2-de6a224e0bae', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/node/3ce12f98-2418-4de7-95cf-739f03fac19d/allocation {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/node/235cacc2-895a-42bf-97a2-b8468d3ff692/allocation {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/allocations/?limit=3 {} -GOT:{'allocations': [{'uuid': '983a443d-b13b-4762-9fab-57f1a5a931e1', 'created_at': '2024-01-06T10:56:44.422769+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/983a443d-b13b-4762-9fab-57f1a5a931e1', 'rel': 'self'}, {'href': 'http://localhost/allocations/983a443d-b13b-4762-9fab-57f1a5a931e1', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '4e2619c5-c6c2-4199-96a6-3865990c06ab', 'created_at': '2024-01-06T10:56:44.425081+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/4e2619c5-c6c2-4199-96a6-3865990c06ab', 'rel': 'self'}, {'href': 'http://localhost/allocations/4e2619c5-c6c2-4199-96a6-3865990c06ab', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '18dac3f7-1193-493b-9035-8af0f26fb2bb', 'created_at': '2024-01-06T10:56:44.427135+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/18dac3f7-1193-493b-9035-8af0f26fb2bb', 'rel': 'self'}, {'href': 'http://localhost/allocations/18dac3f7-1193-493b-9035-8af0f26fb2bb', 'rel': 'bookmark'}], 'node_uuid': None}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=18dac3f7-1193-493b-9035-8af0f26fb2bb'} -GET: /v1/allocations?fields=uuid,extra {} -GOT:{'allocations': [{'uuid': 'fda48062-5d65-43a1-9b82-2f058e8d0470', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/fda48062-5d65-43a1-9b82-2f058e8d0470', 'rel': 'self'}, {'href': 'http://localhost/allocations/fda48062-5d65-43a1-9b82-2f058e8d0470', 'rel': 'bookmark'}]}, {'uuid': '1597c24f-40a9-43a6-8d78-3d8b0e5264ae', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/1597c24f-40a9-43a6-8d78-3d8b0e5264ae', 'rel': 'self'}, {'href': 'http://localhost/allocations/1597c24f-40a9-43a6-8d78-3d8b0e5264ae', 'rel': 'bookmark'}]}, {'uuid': '9f36002b-cf75-4ef2-82bc-c014074bf7b5', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/9f36002b-cf75-4ef2-82bc-c014074bf7b5', 'rel': 'self'}, {'href': 'http://localhost/allocations/9f36002b-cf75-4ef2-82bc-c014074bf7b5', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=9f36002b-cf75-4ef2-82bc-c014074bf7b5'} -GET: /v1/allocations {} -GOT:{'allocations': [{'uuid': '8187e4ad-e97c-4f1f-8805-72b7f307caab', 'created_at': '2024-01-06T10:56:44.583509+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/8187e4ad-e97c-4f1f-8805-72b7f307caab', 'rel': 'self'}, {'href': 'http://localhost/allocations/8187e4ad-e97c-4f1f-8805-72b7f307caab', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '1924eef4-ca8d-4191-a399-839f77c33a82', 'created_at': '2024-01-06T10:56:44.585978+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/1924eef4-ca8d-4191-a399-839f77c33a82', 'rel': 'self'}, {'href': 'http://localhost/allocations/1924eef4-ca8d-4191-a399-839f77c33a82', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '69f6b45d-fb99-4471-9ee7-f30a4a82c2c6', 'created_at': '2024-01-06T10:56:44.588514+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/69f6b45d-fb99-4471-9ee7-f30a4a82c2c6', 'rel': 'self'}, {'href': 'http://localhost/allocations/69f6b45d-fb99-4471-9ee7-f30a4a82c2c6', 'rel': 'bookmark'}], 'node_uuid': None}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=69f6b45d-fb99-4471-9ee7-f30a4a82c2c6'} -GET: /v1/allocations {} -GOT:{'allocations': []} -GET: /v1/allocations?node=node-1 {} -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_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_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_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_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_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_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_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_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_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.TestPatch.test_add_node_uuid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid ... ok -GOT:Response: 400 Bad Request +{"uuid": "915b69a2-a34d-4ffc-8f6c-923a1152993c", "created_at": "2025-02-07T17:33:01.288897+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/915b69a2-a34d-4ffc-8f6c-923a1152993c", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/ports", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/states", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/volume", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c [{'path': '/management_interface', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-efaff395-9da3-44d1-97d1-3bee19b497f2 +Openstack-Request-Id: req-58fde72c-d757-400f-958d-c009d9c69840 X-Openstack-Ironic-Api-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': 'c7fc581f-0089-41fb-bb83-abc560ce7259', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} -GOT:Response: 400 Bad Request +{"uuid": "915b69a2-a34d-4ffc-8f6c-923a1152993c", "created_at": "2025-02-07T17:33:01.288897+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/915b69a2-a34d-4ffc-8f6c-923a1152993c", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/ports", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/states", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/volume", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c [{'path': '/power_interface', 'op': 'remove'}] +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_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_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.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.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_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_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_chassis.TestListChassis.test_collection_links +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-779a79aa-54f9-4ff2-9625-a9c8fb05014f +Openstack-Request-Id: req-af65aa82-34f9-4a5f-84cb-1c3a404b7fa5 X-Openstack-Ironic-Api-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': 'cd36bb79-712e-429e-912c-fbf2027af64f', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} -GOT:Response: 400 Bad Request +{"uuid": "915b69a2-a34d-4ffc-8f6c-923a1152993c", "created_at": "2025-02-07T17:33:01.288897+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/915b69a2-a34d-4ffc-8f6c-923a1152993c", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/ports", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/states", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/volume", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c [{'path': '/raid_interface', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7f3d5e94-a3ab-4b2c-8b8e-6ad2239cca5a +Openstack-Request-Id: req-0e1a4161-067f-4fd4-8746-48160afa0108 X-Openstack-Ironic-Api-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': '6da410f2-c8d4-4f38-87a4-c162ccd59097', 'steps': {}, 'extra': {}} -GOT:Response: 400 Bad Request +{"uuid": "915b69a2-a34d-4ffc-8f6c-923a1152993c", "created_at": "2025-02-07T17:33:01.288897+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/915b69a2-a34d-4ffc-8f6c-923a1152993c", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/ports", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/states", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/volume", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c [{'path': '/vendor_interface', 'op': 'remove'}] +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_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_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.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_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_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.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.TestListAllocations.test_many +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_many ... 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_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_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_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_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_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.TestPatch.test_reset_interfaces_not_supported +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_not_supported ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-670e9bb7-442d-468a-bc58-cdaa68f3eb08 +Openstack-Request-Id: req-d032c9dc-59bd-40b8-bc10-bd50c70f1c50 X-Openstack-Ironic-Api-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': 'ecb7f270-554a-4303-ac64-b1e17ef00754', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': 'not a dict', 'priority': 10}], 'extra': {}} -GOT:Response: 400 Bad Request +{"uuid": "be5a7062-9ec5-4d41-9a8f-21878444c8cb", "created_at": "2025-02-07T17:33:00.109110+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/be5a7062-9ec5-4d41-9a8f-21878444c8cb", "rel": "self"}, {"href": "http://localhost/allocations/be5a7062-9ec5-4d41-9a8f-21878444c8cb", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/be5a7062-9ec5-4d41-9a8f-21878444c8cb {} +GOT:{'uuid': 'be5a7062-9ec5-4d41-9a8f-21878444c8cb', 'created_at': '2025-02-07T17:33:00.109110+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/be5a7062-9ec5-4d41-9a8f-21878444c8cb', 'rel': 'self'}, {'href': 'http://localhost/allocations/be5a7062-9ec5-4d41-9a8f-21878444c8cb', 'rel': 'bookmark'}], 'node_uuid': None} +PATCH: /v1/allocations/9779b462-35f8-459a-93c9-14985928b27f [{'path': '/name', 'value': 'new', 'op': 'replace'}] +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-4b31da86-6457-4b14-a1bc-8ba34869c35d +Openstack-Request-Id: req-a3779c6b-dc3f-417c-a71f-636a3004b18e X-Openstack-Ironic-Api-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': '1f268281-7efa-44e6-9f49-4992980c9e2d', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': [], 'priority': 10}], 'extra': {}} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} +PATCH: /v1/allocations/b4488152-17ac-4db8-9c45-a68ff355afdb [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 405 Method Not Allowed Content-Type: application/json -Openstack-Request-Id: req-cf74fbdf-4b66-4d6d-be21-94d46251d88c +Openstack-Request-Id: req-397ebce8-fca8-4a1f-9ea4-0872f01aa539 X-Openstack-Ironic-Api-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': '7faaae36-b185-44c3-aedc-fd3dfb159802', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10, 'foo': 'bar'}], 'extra': {}} -GOT:Response: 400 Bad Request +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/4dd59ea3-eec7-4c9b-9015-7918ac39c5a8 [{'path': '/name', 'value': 'b', 'op': 'replace'}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-550e7c76-4a00-45b1-9d9c-49de89c22799 +Openstack-Request-Id: req-d17e79a4-7f33-4532-8fa1-7a7e831a0a7e X-Openstack-Ironic-Api-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': 'd304582b-46b6-43ca-b3e6-d4c270b1dadf', 'steps': [{'interface': [3], 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 4dd59ea3-eec7-4c9b-9015-7918ac39c5a8 could not be found.\", \"debuginfo\": null}"} +PATCH: /v1/allocations/2601da72-3dd2-475b-901b-00c71e9e0fde [{'path': '/owner', 'value': '54321', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1b3f7c21-9d65-4b70-b628-335f5af738b0 +Openstack-Request-Id: req-8efa5324-eff3-4732-a67c-839dcbb114d9 X-Openstack-Ironic-Api-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': 'abfed320-f09c-4247-9e36-a454ab8a02b0', 'steps': [{'interface': 'foo', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /owner. Only the following can be updated: name, extra\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '86efd84d-b854-4214-aebd-cb83907de9bf', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-80ce2fec-e634-464e-9787-05f7f7f54dc1 +Location: http://localhost/v1/deploy_templates/86efd84d-b854-4214-aebd-cb83907de9bf +Openstack-Request-Id: req-a767e513-2cf3-4dfe-86bb-6cfd5f73f99c X-Openstack-Ironic-Api-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': 'a18704b6-1e62-4b33-886a-2e78613da43b', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': -1}], 'extra': {}} -GOT:Response: 400 Bad Request +{"uuid": "86efd84d-b854-4214-aebd-cb83907de9bf", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/86efd84d-b854-4214-aebd-cb83907de9bf", "rel": "self"}, {"href": "http://localhost/deploy_templates/86efd84d-b854-4214-aebd-cb83907de9bf", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +GET: /v1/deploy_templates/86efd84d-b854-4214-aebd-cb83907de9bf {} +GOT:{'uuid': '86efd84d-b854-4214-aebd-cb83907de9bf', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/86efd84d-b854-4214-aebd-cb83907de9bf', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/86efd84d-b854-4214-aebd-cb83907de9bf', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '3dece5f0-5513-4f85-a4b8-19f1c225ab16', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': [{'bar': 'baz'}]}, 'priority': 10}], 'extra': {}} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-ee47138f-5da5-468d-bc0e-d747901578b4 +Location: http://localhost/v1/deploy_templates/3dece5f0-5513-4f85-a4b8-19f1c225ab16 +Openstack-Request-Id: req-4c411d11-63c8-4f3d-9437-53a4ed924c49 X-Openstack-Ironic-Api-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': 'e3b2585b-6748-445d-ae4c-167c7497c518', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 'not a number'}], 'extra': {}} -GOT:Response: 400 Bad Request +{"uuid": "3dece5f0-5513-4f85-a4b8-19f1c225ab16", "created_at": "2025-02-07T17:33:01.459687+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/3dece5f0-5513-4f85-a4b8-19f1c225ab16", "rel": "self"}, {"href": "http://localhost/deploy_templates/3dece5f0-5513-4f85-a4b8-19f1c225ab16", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"foo": [{"bar": "baz"}]}, "priority": 10}]} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'ed0bd650-5221-43ab-a7fc-89de37cd4d01', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-eb587990-eed5-4d1a-beac-f64024c97d5f +Location: http://localhost/v1/deploy_templates/ed0bd650-5221-43ab-a7fc-89de37cd4d01 +Openstack-Request-Id: req-af67642c-323e-4b01-9ca8-c78dfaffbff0 X-Openstack-Ironic-Api-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': '6738c7ea-d6d9-47f7-ac0c-df6276971d7c', 'steps': [{'interface': 'raid', 'step': 42, 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} -GOT:Response: 400 Bad Request +{"uuid": "ed0bd650-5221-43ab-a7fc-89de37cd4d01", "created_at": "2025-02-07T17:33:01.640567+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/ed0bd650-5221-43ab-a7fc-89de37cd4d01", "rel": "self"}, {"href": "http://localhost/deploy_templates/ed0bd650-5221-43ab-a7fc-89de37cd4d01", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +GET: /v1/deploy_templates/ed0bd650-5221-43ab-a7fc-89de37cd4d01 {} +GOT:{'uuid': 'ed0bd650-5221-43ab-a7fc-89de37cd4d01', 'created_at': '2025-02-07T17:33:01.640567+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/ed0bd650-5221-43ab-a7fc-89de37cd4d01', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/ed0bd650-5221-43ab-a7fc-89de37cd4d01', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '6119c2c5-94dd-4fa4-9790-594ea47593c3', '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-90262a69-bc8b-47a1-835d-0a4e625af669 +Openstack-Request-Id: req-13ea3ced-52f0-47a6-a0fe-3a99e3f2b3ca X-Openstack-Ironic-Api-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': '0f15f751-963a-40b2-adca-095e4f5b2b92', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} -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_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_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.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_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_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.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_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.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_deploy_template.TestPost.test_create_standard_trait_name -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_standard_trait_name ... ok -GOT:{'chassis': [{'uuid': 'efc001e3-8879-4586-9e80-d4387cc3ba2f', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/efc001e3-8879-4586-9e80-d4387cc3ba2f', 'rel': 'self'}, {'href': 'http://localhost/chassis/efc001e3-8879-4586-9e80-d4387cc3ba2f', 'rel': 'bookmark'}]}, {'uuid': '0b20fb84-2faa-475e-9ef4-b994210a010c', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/0b20fb84-2faa-475e-9ef4-b994210a010c', 'rel': 'self'}, {'href': 'http://localhost/chassis/0b20fb84-2faa-475e-9ef4-b994210a010c', 'rel': 'bookmark'}]}, {'uuid': '78bb2353-47be-4632-b17f-a630e88ea4ca', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/78bb2353-47be-4632-b17f-a630e88ea4ca', 'rel': 'self'}, {'href': 'http://localhost/chassis/78bb2353-47be-4632-b17f-a630e88ea4ca', 'rel': 'bookmark'}]}, {'uuid': 'fad6d697-b01a-48fc-a50f-124223a11f42', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/fad6d697-b01a-48fc-a50f-124223a11f42', 'rel': 'self'}, {'href': 'http://localhost/chassis/fad6d697-b01a-48fc-a50f-124223a11f42', 'rel': 'bookmark'}]}, {'uuid': 'a69c9604-b9bb-439b-8be2-a0ae00f14b9a', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/a69c9604-b9bb-439b-8be2-a0ae00f14b9a', 'rel': 'self'}, {'href': 'http://localhost/chassis/a69c9604-b9bb-439b-8be2-a0ae00f14b9a', 'rel': 'bookmark'}]}]} -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes {} -GOT:{'nodes': [{'uuid': '3b48f235-d4d2-4232-bc2e-7dbcebf5a406', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/3b48f235-d4d2-4232-bc2e-7dbcebf5a406', 'rel': 'self'}, {'href': 'http://localhost/nodes/3b48f235-d4d2-4232-bc2e-7dbcebf5a406', 'rel': 'bookmark'}]}, {'uuid': '4ce4ecd4-2b0a-48f0-9ecc-a16c3da1165b', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/4ce4ecd4-2b0a-48f0-9ecc-a16c3da1165b', 'rel': 'self'}, {'href': 'http://localhost/nodes/4ce4ecd4-2b0a-48f0-9ecc-a16c3da1165b', 'rel': 'bookmark'}]}]} -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes?limit=1 {} -GOT:{'nodes': [{'uuid': '3b48f235-d4d2-4232-bc2e-7dbcebf5a406', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/3b48f235-d4d2-4232-bc2e-7dbcebf5a406', 'rel': 'self'}, {'href': 'http://localhost/nodes/3b48f235-d4d2-4232-bc2e-7dbcebf5a406', '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=3b48f235-d4d2-4232-bc2e-7dbcebf5a406'} -GET: /v1/chassis/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/nodes {} +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} +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.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.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_allocation.TestListAllocations.test_one +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_one ... 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.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_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_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.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_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_utils.TestNodeIdent.test_populate_node_uuid +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_populate_node_uuid ... 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 -Openstack-Request-Id: req-0822684f-c34a-4fbd-8a8e-c9dfef638c88 +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"} +GET: /v1/allocations/39d8e7b8-4975-4b72-9782-ee31596d6666.json {} +GOT:{'uuid': '39d8e7b8-4975-4b72-9782-ee31596d6666', 'created_at': '2025-02-07T17:33:00.895377+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/39d8e7b8-4975-4b72-9782-ee31596d6666', 'rel': 'self'}, {'href': 'http://localhost/allocations/39d8e7b8-4975-4b72-9782-ee31596d6666', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/allocations/e6c807c0-869a-494c-9af6-2365e85c0384 {} +GOT:{'uuid': 'e6c807c0-869a-494c-9af6-2365e85c0384', 'created_at': '2025-02-07T17:33:01.156390+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/e6c807c0-869a-494c-9af6-2365e85c0384', 'rel': 'self'}, {'href': 'http://localhost/allocations/e6c807c0-869a-494c-9af6-2365e85c0384', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/allocations/2ba14413-4bad-4417-9dd1-4a3485b77d43 {} +GOT:{'uuid': '2ba14413-4bad-4417-9dd1-4a3485b77d43', 'created_at': '2025-02-07T17:33:01.337135+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/2ba14413-4bad-4417-9dd1-4a3485b77d43', 'rel': 'self'}, {'href': 'http://localhost/allocations/2ba14413-4bad-4417-9dd1-4a3485b77d43', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/allocations/5bb3396c-78bf-4f96-a4f3-f9b1c1d06df0?fields=owner {} +GOT:{'owner': '12345', 'links': [{'href': 'http://localhost/v1/allocations/5bb3396c-78bf-4f96-a4f3-f9b1c1d06df0', 'rel': 'self'}, {'href': 'http://localhost/allocations/5bb3396c-78bf-4f96-a4f3-f9b1c1d06df0', 'rel': 'bookmark'}]} +GET: /v1/allocations/7a22a0d9-713e-4d3c-ab2c-5d9f3b7a60e3 {} +GOT:{'uuid': '7a22a0d9-713e-4d3c-ab2c-5d9f3b7a60e3', 'created_at': '2025-02-07T17:33:01.690021+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/7a22a0d9-713e-4d3c-ab2c-5d9f3b7a60e3', 'rel': 'self'}, {'href': 'http://localhost/allocations/7a22a0d9-713e-4d3c-ab2c-5d9f3b7a60e3', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/allocations/7a22a0d9-713e-4d3c-ab2c-5d9f3b7a60e3 {} +GOT:{'uuid': '7a22a0d9-713e-4d3c-ab2c-5d9f3b7a60e3', 'created_at': '2025-02-07T17:33:01.690021+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/7a22a0d9-713e-4d3c-ab2c-5d9f3b7a60e3', 'rel': 'self'}, {'href': 'http://localhost/allocations/7a22a0d9-713e-4d3c-ab2c-5d9f3b7a60e3', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /allocations/7a22a0d9-713e-4d3c-ab2c-5d9f3b7a60e3 {} +GOT:{'uuid': '7a22a0d9-713e-4d3c-ab2c-5d9f3b7a60e3', 'created_at': '2025-02-07T17:33:01.690021+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/7a22a0d9-713e-4d3c-ab2c-5d9f3b7a60e3', 'rel': 'self'}, {'href': 'http://localhost/allocations/7a22a0d9-713e-4d3c-ab2c-5d9f3b7a60e3', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/allocations {} +GOT:{'allocations': [{'uuid': 'ef40af05-9a04-474f-88a4-328e3aa2f978', 'created_at': '2025-02-07T17:33:01.942126+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/ef40af05-9a04-474f-88a4-328e3aa2f978', 'rel': 'self'}, {'href': 'http://localhost/allocations/ef40af05-9a04-474f-88a4-328e3aa2f978', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'e0152d2a-c89a-4358-b303-eea0b8a73c67', 'created_at': '2025-02-07T17:33:01.943764+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/e0152d2a-c89a-4358-b303-eea0b8a73c67', 'rel': 'self'}, {'href': 'http://localhost/allocations/e0152d2a-c89a-4358-b303-eea0b8a73c67', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '72fb0307-a83a-4bfc-91be-876c87b5c1db', 'created_at': '2025-02-07T17:33:01.954469+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/72fb0307-a83a-4bfc-91be-876c87b5c1db', 'rel': 'self'}, {'href': 'http://localhost/allocations/72fb0307-a83a-4bfc-91be-876c87b5c1db', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '51b9e481-9b05-4d09-b73f-d662526f8ded', 'created_at': '2025-02-07T17:33:01.960127+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/51b9e481-9b05-4d09-b73f-d662526f8ded', 'rel': 'self'}, {'href': 'http://localhost/allocations/51b9e481-9b05-4d09-b73f-d662526f8ded', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '3cac86a9-c8cd-4f31-9ecd-916cc4daa9a6', 'created_at': '2025-02-07T17:33:01.961794+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/3cac86a9-c8cd-4f31-9ecd-916cc4daa9a6', 'rel': 'self'}, {'href': 'http://localhost/allocations/3cac86a9-c8cd-4f31-9ecd-916cc4daa9a6', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/allocations {} +GOT:{'allocations': [{'uuid': '5a85092d-5fef-42ca-8249-deec4e8d98d6', 'created_at': '2025-02-07T17:33:02.144339+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/5a85092d-5fef-42ca-8249-deec4e8d98d6', 'rel': 'self'}, {'href': 'http://localhost/allocations/5a85092d-5fef-42ca-8249-deec4e8d98d6', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/allocations?sort_key=uuid {} +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_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_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.TestListAllocations.test_sort_key +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key ... 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.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_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_driver.TestListDrivers.test_raid_logical_disk_properties_cached +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached ... 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.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_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_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_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_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_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_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_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.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.TestPatch.test_reset_network_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_network_interface ... 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.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_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_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_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_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_chassis.TestPatch.test_add_multi +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_multi ... 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.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_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_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:{'uuid': '50d16ac7-0587-4b0c-877c-96ba3f7c03a2', 'created_at': '2025-02-07T17:33:01.584167+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/50d16ac7-0587-4b0c-877c-96ba3f7c03a2', 'rel': 'self'}, {'href': 'http://localhost/allocations/50d16ac7-0587-4b0c-877c-96ba3f7c03a2', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '00d51e5d-a46f-4b0f-a184-f511a8a10f56', 'owner': None} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-1abb8cec-4911-4cda-92c3-586f35177bc8 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': '2024-01-06T10:56:44.556027+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.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': 'e71eaa4f-964c-46e2-81f8-804c3a9d41a6', 'owner': None} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-9a3bf142-c226-42a4-8632-3dc6c28a1930 +Location: http://localhost/v1/allocations/e71eaa4f-964c-46e2-81f8-804c3a9d41a6 +Openstack-Request-Id: req-d3465ae1-0397-4779-a0a6-6b0bd830a40d 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': 'ba0badf1-aab4-4d0f-a430-471d7f71465e', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/ba0badf1-aab4-4d0f-a430-471d7f71465e', 'rel': 'self'}, {'href': 'http://localhost/chassis/ba0badf1-aab4-4d0f-a430-471d7f71465e', 'rel': 'bookmark'}]}, {'uuid': 'bb4de45a-f5d5-4d24-a23f-f0df92376ab2', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/bb4de45a-f5d5-4d24-a23f-f0df92376ab2', 'rel': 'self'}, {'href': 'http://localhost/chassis/bb4de45a-f5d5-4d24-a23f-f0df92376ab2', 'rel': 'bookmark'}]}, {'uuid': 'd4adfc7d-6e7c-46d8-9356-0eebfd6463f0', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/d4adfc7d-6e7c-46d8-9356-0eebfd6463f0', 'rel': 'self'}, {'href': 'http://localhost/chassis/d4adfc7d-6e7c-46d8-9356-0eebfd6463f0', 'rel': 'bookmark'}]}]} -GET: /v1/chassis?sort_key=foo {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.60 +{"uuid": "e71eaa4f-964c-46e2-81f8-804c3a9d41a6", "created_at": "2025-02-07T17:33:02.026826+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/e71eaa4f-964c-46e2-81f8-804c3a9d41a6", "rel": "self"}, {"href": "http://localhost/allocations/e71eaa4f-964c-46e2-81f8-804c3a9d41a6", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/e71eaa4f-964c-46e2-81f8-804c3a9d41a6 {} +GOT:{'uuid': 'e71eaa4f-964c-46e2-81f8-804c3a9d41a6', 'created_at': '2025-02-07T17:33:02.026826+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/e71eaa4f-964c-46e2-81f8-804c3a9d41a6', 'rel': 'self'}, {'href': 'http://localhost/allocations/e71eaa4f-964c-46e2-81f8-804c3a9d41a6', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'fbd959d4-0752-40f6-849f-b470a3e56fcf'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-cd75fb8f-c4fb-47c9-9374-2bb1c26dda1a +Location: http://localhost/v1/allocations/fbd959d4-0752-40f6-849f-b470a3e56fcf +Openstack-Request-Id: req-d4095a52-afe1-4870-a3af-43dc3bc9da91 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.59 +{"uuid": "fbd959d4-0752-40f6-849f-b470a3e56fcf", "created_at": "2025-02-07T17:33:02.190842+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/fbd959d4-0752-40f6-849f-b470a3e56fcf", "rel": "self"}, {"href": "http://localhost/allocations/fbd959d4-0752-40f6-849f-b470a3e56fcf", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/fbd959d4-0752-40f6-849f-b470a3e56fcf {} +GOT:{'uuid': 'fbd959d4-0752-40f6-849f-b470a3e56fcf', 'created_at': '2025-02-07T17:33:02.190842+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/fbd959d4-0752-40f6-849f-b470a3e56fcf', 'rel': 'self'}, {'href': 'http://localhost/allocations/fbd959d4-0752-40f6-849f-b470a3e56fcf', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'a4e530a5-a5b3-4d41-872f-3d663096ad09', 'owner': '54321'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-35e6ee78-aeda-496d-8f3a-31f77c373293 +Openstack-Request-Id: req-d76e90d9-ddbb-41a2-83ea-79d13865b041 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}"} -POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'data-center-1-chassis'} +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': 'd397b2a4-af6e-4259-ac14-9accb50fdbd3', 'owner': '12345'} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -Openstack-Request-Id: req-a9e48a49-1e61-44de-9bf3-d77bea03d4bf +Location: http://localhost/v1/allocations/d397b2a4-af6e-4259-ac14-9accb50fdbd3 +Openstack-Request-Id: req-ab439bcd-7c62-4364-a2dd-a6b774a70071 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'}]]} -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_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_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_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_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_chassis.TestPost.test_create_chassis_valid_extra -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra ... ok -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.60 +{"uuid": "d397b2a4-af6e-4259-ac14-9accb50fdbd3", "created_at": "2025-02-07T17:33:02.460606+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/d397b2a4-af6e-4259-ac14-9accb50fdbd3", "rel": "self"}, {"href": "http://localhost/allocations/d397b2a4-af6e-4259-ac14-9accb50fdbd3", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/d397b2a4-af6e-4259-ac14-9accb50fdbd3 {} +GOT:{'uuid': 'd397b2a4-af6e-4259-ac14-9accb50fdbd3', 'created_at': '2025-02-07T17:33:02.460606+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/d397b2a4-af6e-4259-ac14-9accb50fdbd3', 'rel': 'self'}, {'href': 'http://localhost/allocations/d397b2a4-af6e-4259-ac14-9accb50fdbd3', 'rel': 'bookmark'}], 'node_uuid': None} +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-fd3300d2-1e42-4a9d-a881-288708d273b0 +Openstack-Request-Id: req-34d4dd67-4976-4c67-8c7e-97360f482735 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-06T10:56:44.286725+00:00", "updated_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 +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:33:02.683019+00:00", "updated_at": "2025-02-07T17:33:02.712510+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-07T17:33:02.683019+00:00', 'updated_at': '2025-02-07T17:33:02.712510+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'}] +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.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:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2025-02-07T17:32:56.216414+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-a17aeaba-be9a-4031-87c7-86e3cef40be7 +Openstack-Request-Id: req-ecab175e-0973-46ba-a016-c6ca5780ef2c 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-06T10:56:44.436103+00:00", "updated_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'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} +GOT:{'bios': [{'created_at': '2025-02-07T17:32:56.801935+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-07T17:32:57.213206+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-1595502c-a25a-4db2-a833-c8df4fa1586d +Openstack-Request-Id: req-57cb4cfa-87e7-474f-8beb-e7e3635f13e3 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/8208724f-3c15-4445-84ef-2f58f04d8832 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 409 Conflict +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 -Openstack-Request-Id: req-1f585bd3-d25c-438f-9ab3-3493fc172605 -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 8208724f-3c15-4445-84ef-2f58f04d8832 can not be updated while a state transition is in progress.\", \"debuginfo\": null}"} -PATCH: /v1/nodes/b33c2681-f909-479b-8469-98a6dec073f5 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"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-07T17:32:58.444512+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-90338283-9c58-4eeb-bd73-4e05d2cbe9fd +Openstack-Request-Id: req-afb69f94-8c46-4864-99f7-6fc24abe7662 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "b33c2681-f909-479b-8469-98a6dec073f5", "created_at": "2024-01-06T10:56:44.693585+00:00", "updated_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/b33c2681-f909-479b-8469-98a6dec073f5", "rel": "self"}, {"href": "http://localhost/nodes/b33c2681-f909-479b-8469-98a6dec073f5", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b33c2681-f909-479b-8469-98a6dec073f5/ports", "rel": "self"}, {"href": "http://localhost/nodes/b33c2681-f909-479b-8469-98a6dec073f5/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': ''}] +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': '2025-02-07T17:32:58.972465+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-e0509a2c-25d2-46d9-b325-b322aa646afc +Openstack-Request-Id: req-02a24dd1-a8b3-44fa-afea-c0763e506528 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.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-07T17:32:59.337358+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-db4f97fc-3772-473c-870f-f231ffebaa46 +Openstack-Request-Id: req-bec529a2-2fb2-40f7-a46f-81304b61b83a 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 +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 -Openstack-Request-Id: req-094545ed-c7f9-433a-a0e0-e5eae8e259ba -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'}] -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_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_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:Response: 400 Bad Request +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization {} +GOT:{'virtualization': {'created_at': '2025-02-07T17:32:59.801242+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/volume/connectors/?limit=3 {} +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 +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f7419b00-7ebc-44ad-920a-d2dab0ac39dc +Openstack-Request-Id: req-2e7b6f56-264f-4011-8428-1fee0e0f63a6 X-Openstack-Ironic-Api-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 +{"uuid": "915b69a2-a34d-4ffc-8f6c-923a1152993c", "created_at": "2025-02-07T17:33:01.288897+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/915b69a2-a34d-4ffc-8f6c-923a1152993c", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/ports", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/states", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/volume", "rel": "self"}, {"href": "http://localhost/nodes/915b69a2-a34d-4ffc-8f6c-923a1152993c/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-330ff9ed-b9c0-43a0-a93e-6d7ce60f3a6a +Openstack-Request-Id: req-79de0484-a9fd-4172-bf42-84f3a0cc87e1 X-Openstack-Ironic-Api-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\": \"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 Content-Type: application/json -Openstack-Request-Id: req-0d6d34d4-1431-4ea6-bff5-224bfcf645cd +Openstack-Request-Id: req-f12ce46f-c16b-4e79-9070-84de7f7ef646 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-a9cb7a5b-a104-4d0b-aaf2-32411ca20e00 +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/db6b6721-a494-4ef6-8117-9e6502701788 [{'path': '/network_interface', 'op': 'remove'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-53b0cf1b-e638-436c-b4e7-85be4928d45b 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'}]} +{"uuid": "db6b6721-a494-4ef6-8117-9e6502701788", "created_at": "2025-02-07T17:33:02.390771+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/db6b6721-a494-4ef6-8117-9e6502701788", "rel": "self"}, {"href": "http://localhost/nodes/db6b6721-a494-4ef6-8117-9e6502701788", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/db6b6721-a494-4ef6-8117-9e6502701788/ports", "rel": "self"}, {"href": "http://localhost/nodes/db6b6721-a494-4ef6-8117-9e6502701788/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/db6b6721-a494-4ef6-8117-9e6502701788/states", "rel": "self"}, {"href": "http://localhost/nodes/db6b6721-a494-4ef6-8117-9e6502701788/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/db6b6721-a494-4ef6-8117-9e6502701788/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/db6b6721-a494-4ef6-8117-9e6502701788/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/db6b6721-a494-4ef6-8117-9e6502701788/volume", "rel": "self"}, {"href": "http://localhost/nodes/db6b6721-a494-4ef6-8117-9e6502701788/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/0ae091f2-14d3-471b-899b-0d7d5c3849a3 [{'path': '/storage_interface', 'op': 'remove'}] +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_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.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.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_volume_connector.TestListVolumeConnectors.test_collection_links +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links ... 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 +: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_event.TestPostRBAC.test_events +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events ... 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_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_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_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.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 +DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 204 No Content -Openstack-Request-Id: req-6ff0f332-68d8-4fb7-abf7-54807e5a0248 +Openstack-Request-Id: req-526d81b6-bd98-4951-b06c-6654b6d362a5 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 -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-bc4cbeb5-6215-4fa0-9d75-72b10e9787cc +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-53e45ed8-1c41-4137-a227-4ec5b750e2d0 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 +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/393287d1-ab7d-4e71-9ae8-0b7d7aa5c087 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-34723120-3d35-422a-a62c-2e7c0e8aaf25 +Openstack-Request-Id: req-a11f4386-89d8-4a25-8ba9-8f19b611797c X-Openstack-Ironic-Api-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']}]} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 393287d1-ab7d-4e71-9ae8-0b7d7aa5c087 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-7b936149-4910-451f-a57f-91f6b96480f8 +Openstack-Request-Id: req-15c3c78b-9c67-4ab9-942c-fd32eaf844f9 X-Openstack-Ironic-Api-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 +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-f3b21607-625d-4000-b775-d3c20794966f +Openstack-Request-Id: req-c2dd7d36-890b-471e-9b98-b3c96f7e0d27 X-Openstack-Ironic-Api-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 +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +GET: /v1/chassis/?limit=3 {} +GOT:{'chassis': [{'uuid': '49732407-5d5c-4203-8211-d85db42736b6', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/49732407-5d5c-4203-8211-d85db42736b6', 'rel': 'self'}, {'href': 'http://localhost/chassis/49732407-5d5c-4203-8211-d85db42736b6', 'rel': 'bookmark'}]}, {'uuid': '97cb11d6-1c68-47e0-b882-f32193d768ea', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/97cb11d6-1c68-47e0-b882-f32193d768ea', 'rel': 'self'}, {'href': 'http://localhost/chassis/97cb11d6-1c68-47e0-b882-f32193d768ea', 'rel': 'bookmark'}]}, {'uuid': '62d8df1a-722d-41f8-a464-a3181b18cb02', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/62d8df1a-722d-41f8-a464-a3181b18cb02', 'rel': 'self'}, {'href': 'http://localhost/chassis/62d8df1a-722d-41f8-a464-a3181b18cb02', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=62d8df1a-722d-41f8-a464-a3181b18cb02'} +GET: /v1/chassis?fields=extra,uuid {} +GOT:{'chassis': [{'uuid': '266cad08-26d0-4689-93e5-8fcc13fc0021', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/266cad08-26d0-4689-93e5-8fcc13fc0021', 'rel': 'self'}, {'href': 'http://localhost/chassis/266cad08-26d0-4689-93e5-8fcc13fc0021', 'rel': 'bookmark'}]}, {'uuid': '9d3b7ad4-145c-4fa9-b87e-6cbde7b1f4cb', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/9d3b7ad4-145c-4fa9-b87e-6cbde7b1f4cb', 'rel': 'self'}, {'href': 'http://localhost/chassis/9d3b7ad4-145c-4fa9-b87e-6cbde7b1f4cb', 'rel': 'bookmark'}]}, {'uuid': 'a93156c1-e97a-42b1-a6f6-1df17d7352e3', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/a93156c1-e97a-42b1-a6f6-1df17d7352e3', 'rel': 'self'}, {'href': 'http://localhost/chassis/a93156c1-e97a-42b1-a6f6-1df17d7352e3', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra,uuid&limit=3&marker=a93156c1-e97a-42b1-a6f6-1df17d7352e3'} +GET: /v1/chassis {} +GOT:{'chassis': [{'uuid': '897ccee0-8b36-4216-89cf-02e7a05c686f', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/897ccee0-8b36-4216-89cf-02e7a05c686f', 'rel': 'self'}, {'href': 'http://localhost/chassis/897ccee0-8b36-4216-89cf-02e7a05c686f', 'rel': 'bookmark'}]}, {'uuid': 'a8f31804-6d66-4471-acb9-7ba1e67166b4', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/a8f31804-6d66-4471-acb9-7ba1e67166b4', 'rel': 'self'}, {'href': 'http://localhost/chassis/a8f31804-6d66-4471-acb9-7ba1e67166b4', 'rel': 'bookmark'}]}, {'uuid': 'ba415b0c-dc4d-4f47-b078-15cbf904c537', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/ba415b0c-dc4d-4f47-b078-15cbf904c537', 'rel': 'self'}, {'href': 'http://localhost/chassis/ba415b0c-dc4d-4f47-b078-15cbf904c537', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=ba415b0c-dc4d-4f47-b078-15cbf904c537'} +GET: /v1/chassis/detail {} +GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2025-02-07T17:33:02.292530+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-f4dd1abc-bb20-4b3a-a7a5-33ff99efb2de +Openstack-Request-Id: req-c67f34b4-ac77-476a-8a79-64953d43a18c X-Openstack-Ironic-Api-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\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/chassis?detail=True {} +GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2025-02-07T17:33:02.550436+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-f7d058ac-a9c6-41e8-9d39-075dfa1a3ba5 -X-Openstack-Ironic-Api-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'}]} -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.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_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_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_node.TestNodeHistory.test_get_all_old_version -ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_old_version ... ok -GOT:Response: 204 No Content -Openstack-Request-Id: req-f52f5b9a-57f0-4412-8d4a-8fe5ad1d7df9 +Openstack-Request-Id: req-140e2983-c054-4fcf-b020-c0c3f11ca453 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 +{"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 {} +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_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.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_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_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_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_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.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.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.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.TestPatch.test_update_allowed_in_maintenance +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_maintenance ... 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.controllers.v1.test_event.TestPostRBAC.test_events_invalid_event +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_invalid_event ... 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_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.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_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_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_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_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_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.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_chassis.TestListChassis.test_empty +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty ... 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-3abedb2b-c17d-4bf5-b892-97e5ce91b33c +Openstack-Request-Id: req-e37b7ef9-b21b-4850-99b1-e8346b6ff091 X-Openstack-Ironic-Api-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 +{"uuid": "d161886f-1c6c-4b8a-b058-18d2a0af6ade", "created_at": "2025-02-07T17:33:00.747679+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d161886f-1c6c-4b8a-b058-18d2a0af6ade", "rel": "self"}, {"href": "http://localhost/deploy_templates/d161886f-1c6c-4b8a-b058-18d2a0af6ade", "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-41c37fa9-67d1-4f2d-ab75-f06d7905560d +Openstack-Request-Id: req-8e556977-b5a5-4805-b340-d8cf530a44fa X-Openstack-Ironic-Api-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'}]} +{"uuid": "caf1749b-3f02-480a-a8b1-b47da5fbcbff", "created_at": "2025-02-07T17:33:01.226913+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/caf1749b-3f02-480a-a8b1-b47da5fbcbff", "rel": "self"}, {"href": "http://localhost/deploy_templates/caf1749b-3f02-480a-a8b1-b47da5fbcbff", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +PATCH: /v1/deploy_templates/e45e7921-533f-4391-abe9-a8540ad54ee0 [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-5fcff7a3-2fda-49df-9779-d46fb200295a +Openstack-Request-Id: req-374d147c-6009-4bcf-bdfd-039b3a8ef679 X-Openstack-Ironic-Api-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 +{"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/c12aaabd-d9b1-4e2e-8e60-79a0868d94f4 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a636deb2-e3bd-4ced-a9db-d69a4153d55f +Openstack-Request-Id: req-e0a7c4b0-2775-449c-9c7d-59907ebc7d2e X-Openstack-Ironic-Api-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'}]} -GOT:Response: 400 Bad Request +{"uuid": "c12aaabd-d9b1-4e2e-8e60-79a0868d94f4", "created_at": "2025-02-07T17:33:01.550700+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/c12aaabd-d9b1-4e2e-8e60-79a0868d94f4", "rel": "self"}, {"href": "http://localhost/deploy_templates/c12aaabd-d9b1-4e2e-8e60-79a0868d94f4", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +PATCH: /v1/deploy_templates/edc53341-b20b-4d8c-ae44-c0bf86e90cfa [{'path': '/name', 'value': 'HW_CPU_X86_VMX', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e407f921-3890-4c59-b024-9a323678ee3a +Openstack-Request-Id: req-5d407215-f16b-4e1f-ae02-f3e89d1fc333 X-Openstack-Ironic-Api-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'}]} -GOT:Response: 400 Bad Request +{"uuid": "edc53341-b20b-4d8c-ae44-c0bf86e90cfa", "created_at": "2025-02-07T17:33:01.830558+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/edc53341-b20b-4d8c-ae44-c0bf86e90cfa", "rel": "self"}, {"href": "http://localhost/deploy_templates/edc53341-b20b-4d8c-ae44-c0bf86e90cfa", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +PATCH: /v1/deploy_templates/eee95fad-5023-4ef0-bdb5-7bfbbbe4ac2b [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5f03614d-6f4c-4b9d-a422-3c1d4d388746 +Openstack-Request-Id: req-c5bd5526-d734-44ca-b3e6-f04b56acfdd7 X-Openstack-Ironic-Api-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-5ba8a0b6-8298-44ff-b3ed-b094902d2c0c +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template eee95fad-5023-4ef0-bdb5-7bfbbbe4ac2b could not be found.\", \"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-29d54178-f547-40d7-9a76-203758eb57d0 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'}]} -GOT:Response: 400 Bad Request +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-86317fe7-6e9b-4558-90f0-dc934a32946a +Openstack-Request-Id: req-03801ae6-fc9f-4091-bef6-541ec201a7bd X-Openstack-Ironic-Api-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}"} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': '5f2a7ea7-69ea-4536-ae8e-19a2e3f28f6a'} +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}"} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ef44e483-6970-4f94-9228-47a019ecb313'} GOT:Response: 204 No Content -Openstack-Request-Id: req-c70b65a1-eb9f-4904-8411-8fcbb47fa2fc +Openstack-Request-Id: req-063b82da-dfec-47a6-b673-ca861b617f3a 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': '74da0e8e-cc9b-4369-aefe-e3a9c274103b'} +POST: /v1/nodes/node-39/vifs {'id': '3eb287be-2adb-4fec-855b-bc9d56a317d3'} GOT:Response: 204 No Content -Openstack-Request-Id: req-70a5ff6b-5168-4c57-a695-cf6ab26038ab +Openstack-Request-Id: req-061c9a4b-989a-4300-a73d-9fa0cfee2759 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': '8ffe5e1a-f2f4-41b4-a9f1-1d8a0eb5b29e'} +POST: /v1/nodes/node-39/vifs {'id': 'b6695cdf-0372-487f-9de9-775e88954b40'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-5e978952-9dfa-4034-9487-6aebdc79d04b +Openstack-Request-Id: req-0f566cf0-333e-43cc-9ffe-b604e3c7c8c4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 @@ -8196,309 +8731,291 @@ 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-c994ea67-79d8-427c-a7d4-325102df0e15 +Openstack-Request-Id: req-99714d2b-885b-4711-b8e7-316d5cb4208b 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': '172cfd65-ee56-4ce7-87c9-20be2f05eabc'} -GOT:Response: 400 Bad Request +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'bad_id': 'a0b0f285-a23b-4282-b250-66f3abb6a96f'} +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.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_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_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.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_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.TestAttachDetachVif.test_vif_attach_no_vif_id +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_no_vif_id ... ok +INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 +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 +: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_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_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_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_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_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_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.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_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_chassis.TestListChassis.test_get_collection_pagination_no_uuid +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_pagination_no_uuid ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6c344e98-f30a-4d2b-9b7f-ef785c6e8752 +Openstack-Request-Id: req-5064fd09-199a-4e4f-b9e5-c0dd9107c98b 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': 'fbaf15aa-dbe5-4937-9cb5-b7242d848586'} -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.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_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 -GOT:{'nodes': [{'uuid': 'eac23ba3-8ed0-4bdc-a605-9b7041855c74', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/eac23ba3-8ed0-4bdc-a605-9b7041855c74', 'rel': 'self'}, {'href': 'http://localhost/nodes/eac23ba3-8ed0-4bdc-a605-9b7041855c74', 'rel': 'bookmark'}]}, {'uuid': '0372add9-c795-4b08-a264-06edaca543a4', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/0372add9-c795-4b08-a264-06edaca543a4', 'rel': 'self'}, {'href': 'http://localhost/nodes/0372add9-c795-4b08-a264-06edaca543a4', 'rel': 'bookmark'}]}, {'uuid': 'bfa29928-ed98-450a-8f27-475c8aeb576d', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/bfa29928-ed98-450a-8f27-475c8aeb576d', 'rel': 'self'}, {'href': 'http://localhost/nodes/bfa29928-ed98-450a-8f27-475c8aeb576d', '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=bfa29928-ed98-450a-8f27-475c8aeb576d'} -GET: /v1/nodes?instance_uuid=2140ca47-a36d-4bd9-8cac-4bb35e402813 {} -GOT:{'nodes': [{'uuid': '5efa8dd2-74db-49b1-b09d-1619eb1c16e9', 'instance_uuid': '2140ca47-a36d-4bd9-8cac-4bb35e402813', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/5efa8dd2-74db-49b1-b09d-1619eb1c16e9', 'rel': 'self'}, {'href': 'http://localhost/nodes/5efa8dd2-74db-49b1-b09d-1619eb1c16e9', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:44.548415+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 +{"uuid": "0ae091f2-14d3-471b-899b-0d7d5c3849a3", "created_at": "2025-02-07T17:33:02.756404+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/0ae091f2-14d3-471b-899b-0d7d5c3849a3", "rel": "self"}, {"href": "http://localhost/nodes/0ae091f2-14d3-471b-899b-0d7d5c3849a3", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/0ae091f2-14d3-471b-899b-0d7d5c3849a3/ports", "rel": "self"}, {"href": "http://localhost/nodes/0ae091f2-14d3-471b-899b-0d7d5c3849a3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0ae091f2-14d3-471b-899b-0d7d5c3849a3/states", "rel": "self"}, {"href": "http://localhost/nodes/0ae091f2-14d3-471b-899b-0d7d5c3849a3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0ae091f2-14d3-471b-899b-0d7d5c3849a3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0ae091f2-14d3-471b-899b-0d7d5c3849a3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0ae091f2-14d3-471b-899b-0d7d5c3849a3/volume", "rel": "self"}, {"href": "http://localhost/nodes/0ae091f2-14d3-471b-899b-0d7d5c3849a3/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/d5c55a31-cdfb-4e04-9851-31c472105822 [{'path': '/instance_uuid', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0d33e2d0-6c11-47fc-8080-367679a69649 +Openstack-Request-Id: req-1a3c14f3-901b-4edd-8e2b-2f17dc475952 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 +{"uuid": "d5c55a31-cdfb-4e04-9851-31c472105822", "created_at": "2025-02-07T17:33:03.269617+00:00", "updated_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/d5c55a31-cdfb-4e04-9851-31c472105822", "rel": "self"}, {"href": "http://localhost/nodes/d5c55a31-cdfb-4e04-9851-31c472105822", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d5c55a31-cdfb-4e04-9851-31c472105822/ports", "rel": "self"}, {"href": "http://localhost/nodes/d5c55a31-cdfb-4e04-9851-31c472105822/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/3c26c0dc-4e70-4356-b695-1793783bb369 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a4c55c73-5804-4fdd-93af-db02e2d38c2b +Openstack-Request-Id: req-e6855d18-5ca2-4a3d-b6a8-090a409b915a 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': '2024-01-06T10:56:44.739532+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 -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_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_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.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_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_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_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_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_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.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 -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 {} -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_network_interface': None, 'enabled_network_interfaces': [], 'default_deploy_interface': 'direct', 'enabled_deploy_interfaces': ['ansible', 'direct'], 'default_console_interface': None, 'enabled_console_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_power_interface': None, 'enabled_power_interfaces': []}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2/properties', 'rel': 'bookmark'}], 'type': 'dynamic', 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_deploy_interface': None, 'enabled_deploy_interfaces': [], 'default_console_interface': None, 'enabled_console_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_power_interface': None, 'enabled_power_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_network_interface': None, 'enabled_network_interfaces': [], 'default_deploy_interface': 'direct', 'enabled_deploy_interfaces': ['ansible', 'direct'], 'default_storage_interface': None, 'enabled_storage_interfaces': [], 'default_console_interface': None, 'enabled_console_interfaces': [], 'default_rescue_interface': None, 'enabled_rescue_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_bios_interface': None, 'enabled_bios_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_power_interface': None, 'enabled_power_interfaces': []}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2/properties', 'rel': 'bookmark'}], 'type': 'dynamic', 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_deploy_interface': None, 'enabled_deploy_interfaces': [], 'default_storage_interface': None, 'enabled_storage_interfaces': [], 'default_console_interface': None, 'enabled_console_interfaces': [], 'default_rescue_interface': None, 'enabled_rescue_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_bios_interface': None, 'enabled_bios_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_power_interface': None, 'enabled_power_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 {} -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_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_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_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_driver.TestListDrivers.test_links -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links ... 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: 201 Created +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "3c26c0dc-4e70-4356-b695-1793783bb369", "created_at": "2025-02-07T17:33:03.653085+00:00", "updated_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/3c26c0dc-4e70-4356-b695-1793783bb369", "rel": "self"}, {"href": "http://localhost/nodes/3c26c0dc-4e70-4356-b695-1793783bb369", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3c26c0dc-4e70-4356-b695-1793783bb369/ports", "rel": "self"}, {"href": "http://localhost/nodes/3c26c0dc-4e70-4356-b695-1793783bb369/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/fe883ea0-b207-4ea0-8cb6-82f6c5f601f8 [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] +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_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_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_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_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_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_node.TestPatch.test_update_automated_clean +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean ... 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.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 +: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_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_node.TestAttachDetachVif.test_vif_attach_node_not_found +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_not_found ... ok +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/allocations/a8c07bf8-7307-4b8c-b08c-2aa0c977802b -Openstack-Request-Id: req-e661ab38-7de4-4ee4-a38c-a0103ec238ba +Openstack-Request-Id: req-c56dcf81-03d1-482c-b6cd-26f6c2e93bb9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "a8c07bf8-7307-4b8c-b08c-2aa0c977802b", "created_at": "2024-01-06T10:56:44.414506+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/a8c07bf8-7307-4b8c-b08c-2aa0c977802b", "rel": "self"}, {"href": "http://localhost/allocations/a8c07bf8-7307-4b8c-b08c-2aa0c977802b", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/a8c07bf8-7307-4b8c-b08c-2aa0c977802b {} -GOT:{'uuid': 'a8c07bf8-7307-4b8c-b08c-2aa0c977802b', 'created_at': '2024-01-06T10:56:44.414506+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/a8c07bf8-7307-4b8c-b08c-2aa0c977802b', 'rel': 'self'}, {'href': 'http://localhost/allocations/a8c07bf8-7307-4b8c-b08c-2aa0c977802b', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/allocations {'candidate_nodes': ['node-1', '6cfbf432-f5a4-483d-9402-b1ec6ec851ab'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'a5d3fd77-0ff8-4208-8c50-88092eac6165', 'owner': None} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:33:02.974296+00:00", "updated_at": "2025-02-07T17:33:02.986550+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 -Location: http://localhost/v1/allocations/a5d3fd77-0ff8-4208-8c50-88092eac6165 -Openstack-Request-Id: req-1859348e-12a8-41e7-b659-10b8eb4505ce +Openstack-Request-Id: req-48f5cfd7-785c-45ea-8d12-d78a698305d2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "a5d3fd77-0ff8-4208-8c50-88092eac6165", "created_at": "2024-01-06T10:56:44.530205+00:00", "updated_at": null, "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "6cfbf432-f5a4-483d-9402-b1ec6ec851ab"], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/a5d3fd77-0ff8-4208-8c50-88092eac6165", "rel": "self"}, {"href": "http://localhost/allocations/a5d3fd77-0ff8-4208-8c50-88092eac6165", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/a5d3fd77-0ff8-4208-8c50-88092eac6165 {} -GOT:{'uuid': 'a5d3fd77-0ff8-4208-8c50-88092eac6165', 'created_at': '2024-01-06T10:56:44.530205+00:00', 'updated_at': None, 'candidate_nodes': ['1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '6cfbf432-f5a4-483d-9402-b1ec6ec851ab'], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/a5d3fd77-0ff8-4208-8c50-88092eac6165', 'rel': 'self'}, {'href': 'http://localhost/allocations/a5d3fd77-0ff8-4208-8c50-88092eac6165', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/allocations {'candidate_nodes': [], 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'dbc39d0a-3b9c-4794-999b-29f51feced5e', 'owner': None} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: uuid, extra, description\", \"debuginfo\": null}"} +PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 403 Forbidden Content-Type: application/json -Location: http://localhost/v1/allocations/dbc39d0a-3b9c-4794-999b-29f51feced5e -Openstack-Request-Id: req-2b27bc19-d4b3-4689-b6c2-d186e4292f6f +Openstack-Request-Id: req-02b748cc-da67-4771-a37d-2d624d8c6f98 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "dbc39d0a-3b9c-4794-999b-29f51feced5e", "created_at": "2024-01-06T10:56:44.590561+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/dbc39d0a-3b9c-4794-999b-29f51feced5e", "rel": "self"}, {"href": "http://localhost/allocations/dbc39d0a-3b9c-4794-999b-29f51feced5e", "rel": "bookmark"}], "node_uuid": null} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'CUSTOM_FOO_BAR'], 'uuid': '6ce762d1-5a1e-4528-a66a-14dd8797f8fc', 'owner': None} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +PATCH: /v1/chassis/d38b3377-23f9-4a4e-a0bc-f232b46ed231 [{'path': '/extra/foo2', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/allocations/6ce762d1-5a1e-4528-a66a-14dd8797f8fc -Openstack-Request-Id: req-9dd32b61-80d7-4fd4-bee4-01d75ee3b88a +Openstack-Request-Id: req-cbb6745a-6ed3-4c43-bdcd-708f8d3319a3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6ce762d1-5a1e-4528-a66a-14dd8797f8fc", "created_at": "2024-01-06T10:56:44.650708+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/6ce762d1-5a1e-4528-a66a-14dd8797f8fc", "rel": "self"}, {"href": "http://localhost/allocations/6ce762d1-5a1e-4528-a66a-14dd8797f8fc", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/6ce762d1-5a1e-4528-a66a-14dd8797f8fc {} -GOT:{'uuid': '6ce762d1-5a1e-4528-a66a-14dd8797f8fc', 'created_at': '2024-01-06T10:56:44.650708+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/6ce762d1-5a1e-4528-a66a-14dd8797f8fc', 'rel': 'self'}, {'href': 'http://localhost/allocations/6ce762d1-5a1e-4528-a66a-14dd8797f8fc', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '0011f7c3-6520-4647-aa9b-23bdd171ebb5', 'owner': None} -GOT:Response: 405 Method Not Allowed -Allow: DELETE, GET +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "d38b3377-23f9-4a4e-a0bc-f232b46ed231", "created_at": "2025-02-07T17:33:03.579873+00:00", "updated_at": "2025-02-07T17:33:03.591177+00:00", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/d38b3377-23f9-4a4e-a0bc-f232b46ed231", "rel": "self"}, {"href": "http://localhost/chassis/d38b3377-23f9-4a4e-a0bc-f232b46ed231", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/d38b3377-23f9-4a4e-a0bc-f232b46ed231/nodes", "rel": "self"}, {"href": "http://localhost/chassis/d38b3377-23f9-4a4e-a0bc-f232b46ed231/nodes", "rel": "bookmark"}]]} +GET: /v1/chassis/d38b3377-23f9-4a4e-a0bc-f232b46ed231 {} +GOT:{'uuid': 'd38b3377-23f9-4a4e-a0bc-f232b46ed231', 'created_at': '2025-02-07T17:33:03.579873+00:00', 'updated_at': '2025-02-07T17:33:03.591177+00:00', 'description': 'foobar', 'extra': {'foo1': 'bar1', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/d38b3377-23f9-4a4e-a0bc-f232b46ed231', 'rel': 'self'}, {'href': 'http://localhost/chassis/d38b3377-23f9-4a4e-a0bc-f232b46ed231', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/d38b3377-23f9-4a4e-a0bc-f232b46ed231/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/d38b3377-23f9-4a4e-a0bc-f232b46ed231/nodes', 'rel': 'bookmark'}]]} +PATCH: /v1/chassis/d38b3377-23f9-4a4e-a0bc-f232b46ed231 [{'path': '/extra', 'op': 'remove'}] +GOT:Response: 200 OK 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': '6100b5ae-b212-41b0-b42c-c75629257b90', 'owner': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +Openstack-Request-Id: req-11bb8028-20e9-407f-bbd2-30a7adc17c73 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "d38b3377-23f9-4a4e-a0bc-f232b46ed231", "created_at": "2025-02-07T17:33:03.579873+00:00", "updated_at": "2025-02-07T17:33:03.607396+00:00", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/d38b3377-23f9-4a4e-a0bc-f232b46ed231", "rel": "self"}, {"href": "http://localhost/chassis/d38b3377-23f9-4a4e-a0bc-f232b46ed231", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/d38b3377-23f9-4a4e-a0bc-f232b46ed231/nodes", "rel": "self"}, {"href": "http://localhost/chassis/d38b3377-23f9-4a4e-a0bc-f232b46ed231/nodes", "rel": "bookmark"}]]} +GET: /v1/chassis/d38b3377-23f9-4a4e-a0bc-f232b46ed231 {} +GOT:{'uuid': 'd38b3377-23f9-4a4e-a0bc-f232b46ed231', 'created_at': '2025-02-07T17:33:03.579873+00:00', 'updated_at': '2025-02-07T17:33:03.607396+00:00', 'description': 'foobar', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/d38b3377-23f9-4a4e-a0bc-f232b46ed231', 'rel': 'self'}, {'href': 'http://localhost/chassis/d38b3377-23f9-4a4e-a0bc-f232b46ed231', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/d38b3377-23f9-4a4e-a0bc-f232b46ed231/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/d38b3377-23f9-4a4e-a0bc-f232b46ed231/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-034b919f-ab6c-4afd-8db5-63226acb856f +Openstack-Request-Id: req-0efa273d-fbb6-4df3-ac84-bc9ff3b543ca X-Openstack-Ironic-Api-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': 'ebd032e3-8e0a-498f-a8b1-af1d8d7975f6', 'owner': None} -GOT:Response: 201 Created +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/7fac6c5c-4da3-460f-a65c-4e110adfe07b [{'path': '/description', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/allocations/ebd032e3-8e0a-498f-a8b1-af1d8d7975f6 -Openstack-Request-Id: req-1c210805-a94f-47f5-a373-e9bbb16d549c +Openstack-Request-Id: req-3a2e4a13-5935-4543-ba87-f5d9b78cc6a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.60 -{"uuid": "ebd032e3-8e0a-498f-a8b1-af1d8d7975f6", "created_at": "2024-01-06T10:56:44.820849+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/ebd032e3-8e0a-498f-a8b1-af1d8d7975f6", "rel": "self"}, {"href": "http://localhost/allocations/ebd032e3-8e0a-498f-a8b1-af1d8d7975f6", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/ebd032e3-8e0a-498f-a8b1-af1d8d7975f6 {} -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_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_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_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.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.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_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_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_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_node.TestPatch.test_patch_allocation_forbidden -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_forbidden ... ok -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "7fac6c5c-4da3-460f-a65c-4e110adfe07b", "created_at": "2025-02-07T17:33:03.922911+00:00", "updated_at": "2025-02-07T17:33:03.933787+00:00", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/7fac6c5c-4da3-460f-a65c-4e110adfe07b", "rel": "self"}, {"href": "http://localhost/chassis/7fac6c5c-4da3-460f-a65c-4e110adfe07b", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/7fac6c5c-4da3-460f-a65c-4e110adfe07b/nodes", "rel": "self"}, {"href": "http://localhost/chassis/7fac6c5c-4da3-460f-a65c-4e110adfe07b/nodes", "rel": "bookmark"}]]} +GET: /v1/chassis/7fac6c5c-4da3-460f-a65c-4e110adfe07b {} +GOT:{'uuid': '7fac6c5c-4da3-460f-a65c-4e110adfe07b', 'created_at': '2025-02-07T17:33:03.922911+00:00', 'updated_at': '2025-02-07T17:33:03.933787+00:00', 'description': None, 'extra': {'a': 'b'}, 'links': [{'href': 'http://localhost/v1/chassis/7fac6c5c-4da3-460f-a65c-4e110adfe07b', 'rel': 'self'}, {'href': 'http://localhost/chassis/7fac6c5c-4da3-460f-a65c-4e110adfe07b', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/7fac6c5c-4da3-460f-a65c-4e110adfe07b/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/7fac6c5c-4da3-460f-a65c-4e110adfe07b/nodes', 'rel': 'bookmark'}]]} +PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/uuid', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/deploy_templates/0f15f751-963a-40b2-adca-095e4f5b2b92 -Openstack-Request-Id: req-46645684-2b90-4496-a18a-9b1685bcf458 +Openstack-Request-Id: req-06cf0c34-e508-414a-91f3-823c48d8ba01 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "0f15f751-963a-40b2-adca-095e4f5b2b92", "created_at": "2024-01-06T10:56:44.650628+00:00", "updated_at": null, "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/0f15f751-963a-40b2-adca-095e4f5b2b92", "rel": "self"}, {"href": "http://localhost/deploy_templates/0f15f751-963a-40b2-adca-095e4f5b2b92", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -POST: /v1/deploy_templates {'name': 'not-a-trait', 'uuid': '5adb9e68-0d03-471b-8ee9-37b5ce124adb', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot overwrite UUID for an existing Chassis.\", \"debuginfo\": null}"} +PATCH: /v1/chassis/1a4403a6-3da9-4146-8b01-919b8eace881 [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] +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_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_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 GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-54462996-5cf8-43a2-abcb-848ee6295f9c +Openstack-Request-Id: req-8756f9fa-6a79-470c-901a-1612dd293ca0 X-Openstack-Ironic-Api-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': '7f7c325c-fca5-47a7-ad39-8741d968cdbe', 'steps': [{'interface': 'raid', 'step': 'create_configuration', '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-20e912d8-7518-4a7f-b73f-ac3aa470ec9d +Openstack-Request-Id: req-cdbca9fd-384e-4376-822f-789bd4b73e14 X-Openstack-Ironic-Api-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': '9521e348-2782-408d-87e6-17e619984699', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} -GOT:Response: 400 Bad Request +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-c9fc181b-e9cb-4854-b6b6-8512c8f5789c +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 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-25ef8b6e-a27b-4bc1-ac72-32bba94d53d6 +Openstack-Request-Id: req-ef6adfb0-a2c1-4d5f-b78e-56adc739c395 X-Openstack-Ironic-Api-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': 'f08f2348-a8ad-49ae-a4ca-bae03969a45b', 'extra': {}} -GOT:Response: 400 Bad Request +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-16f37393-c983-4ac0-9ded-498ac50d24d0 +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-7f9bb6b6-8681-493b-9164-44a07aa93d4f +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 Content-Type: application/json -Openstack-Request-Id: req-b611917d-5b44-42f2-9ca8-c25be2adc55a +Openstack-Request-Id: req-f85d1b86-035a-4b56-8731-e7f737a96d09 X-Openstack-Ironic-Api-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': 'e09210fd-1f69-4b30-87dc-f79165a15eb3', '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}"} +DELETE: /v1/nodes/node-39/traits/CUSTOM_1 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-14c8e203-e544-4ec7-a99b-3b6c60ffd22f +Openstack-Request-Id: req-2d595a53-604f-4ffc-8f2e-5ebb62084733 X-Openstack-Ironic-Api-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': 'e042f3fa-a5e4-43fb-aa7b-fa24c503e2b8', 'steps': [{'step': 'create_configuration', 'args': {'logical_disks': []}, '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 could not be found.\", \"debuginfo\": null}"} +DELETE: /v1/nodes/node-39/traits/CUSTOM_12 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-20ed535a-de60-44d2-8625-2cbb9526ed81 +Openstack-Request-Id: req-6ace1b4f-af2d-416b-87e9-694cab8f896f X-Openstack-Ironic-Api-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': 'b5202250-f7c6-4e70-a84a-8f6628e241ed', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'extra': {}} -GOT:Response: 400 Bad Request +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-33b66432-64bc-43fd-a80c-7e872930abfc +Openstack-Request-Id: req-31484a1b-9bc3-4dac-a0d8-b4854f9e7039 X-Openstack-Ironic-Api-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': '3cdbf8e5-d33c-4dce-b592-8d3a1b7289c1', 'steps': [{'interface': 'raid', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} -GOT:Response: 400 Bad Request +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-831a68d8-e63d-4045-9e19-1dc79fbb3791 +Openstack-Request-Id: req-e33b90bb-0539-4cc4-96d6-4637c3493650 X-Openstack-Ironic-Api-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': '2cbace59-e00d-4c0b-82ba-f05398517258', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} -GOT:Response: 201 Created +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 Content-Type: application/json -Location: http://localhost/v1/deploy_templates/2cbace59-e00d-4c0b-82ba-f05398517258 -Openstack-Request-Id: req-cca5b30b-ef86-4f9c-8399-811e453be902 +Openstack-Request-Id: req-aa2e82de-1a97-4835-92c0-9185053c2b74 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "2cbace59-e00d-4c0b-82ba-f05398517258", "created_at": "2024-01-06T10:56:45.086934+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/2cbace59-e00d-4c0b-82ba-f05398517258", "rel": "self"}, {"href": "http://localhost/deploy_templates/2cbace59-e00d-4c0b-82ba-f05398517258", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '9f39042d-8901-40ed-972b-26f11ba087bd', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': '42'}], 'extra': {}} -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.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_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.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.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_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_volume_target.TestPatch.test_remove_mandatory_field -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_mandatory_field ... ok +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-a4aaa658-3a05-4c96-8d2e-eb9829ca7882 +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-ef51198c-a527-4552-b46a-6ee83325c990 +Openstack-Request-Id: req-5db8dc47-d8c5-4aa7-a923-655710e2f516 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-6e6398b2-f127-466e-9cf7-21ae1a9ec58d +Openstack-Request-Id: req-ee0a5cbc-1512-409f-aa3e-3a1cb5c9600f 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-4c08fa78-8652-45d3-bc77-db3af0f88656 +Openstack-Request-Id: req-484f5c89-35c9-48f1-92a2-7d0a73ce58b4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 @@ -8511,926 +9028,826 @@ PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3', 'BAD_TRAIT']} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d7889d36-a5e4-4273-903b-cff37c51d592 +Openstack-Request-Id: req-976e61ea-421b-4fdf-862b-d9eb23225eb1 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-43e208dd-aa77-42ab-9648-0abbbafc4a16 -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-e4b488e6-9de3-4afa-8303-c080e5cf6c95 -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-e57ea25f-6e60-43c9-b404-b9720d167620 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.37 - -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.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_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.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.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.TestEventValidator.test_invalid_event_type +ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_event_type ... ok +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 -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-1b23a409-de04-4bca-b0f8-ab2dc835383e +Location: http://localhost/v1/deploy_templates/e93d7055-3b6a-46ed-9cbf-17f12e36b2e6 +Openstack-Request-Id: req-fdb922c8-3ebb-4f34-a477-d805078723c2 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'} -GOT:Response: 201 Created +{"uuid": "e93d7055-3b6a-46ed-9cbf-17f12e36b2e6", "created_at": "2025-02-07T17:33:02.191855+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/e93d7055-3b6a-46ed-9cbf-17f12e36b2e6", "rel": "self"}, {"href": "http://localhost/deploy_templates/e93d7055-3b6a-46ed-9cbf-17f12e36b2e6", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +GET: /v1/deploy_templates/e93d7055-3b6a-46ed-9cbf-17f12e36b2e6 {} +GOT:{'uuid': 'e93d7055-3b6a-46ed-9cbf-17f12e36b2e6', 'created_at': '2025-02-07T17:33:02.191855+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/e93d7055-3b6a-46ed-9cbf-17f12e36b2e6', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/e93d7055-3b6a-46ed-9cbf-17f12e36b2e6', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '76735c9c-c0dc-48ea-a159-12639fc7d5e3', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +GOT:Response: 405 Method Not Allowed Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-e29da5c7-3b32-4d5b-9aa5-703aa05ce2c2 -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-06T10:56:44.949727+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': '8b296ece-7ec0-414a-b19e-db4d8c17cca5', 'name': 'ac81565d-a2da-4321-a569-4c29e752d322', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 409 Conflict +{"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': 'e5adafe7-0ffd-4f60-aea3-3842f302fdd7', 'steps': [], 'extra': {}} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-8b4ba1dc-d48f-4887-92cf-641ca41e1d75 +Openstack-Request-Id: req-65a487af-35ef-449a-9caf-0f428fb83e6e X-Openstack-Ironic-Api-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'} -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.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.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_portgroup.TestPost.test_create_portgroup_error -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error ... 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.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_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_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.TestNodeHistory.test_get_history_item_old_version -ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item_old_version ... ok -GOT:{'uuid': 'ebd032e3-8e0a-498f-a8b1-af1d8d7975f6', 'created_at': '2024-01-06T10:56:44.820849+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/ebd032e3-8e0a-498f-a8b1-af1d8d7975f6', 'rel': 'self'}, {'href': 'http://localhost/allocations/ebd032e3-8e0a-498f-a8b1-af1d8d7975f6', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '4af6637c-d0f0-4e63-8320-b64d3d19a875', 'owner': None} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-7ec67d71-017f-4398-a1ca-6e58442d82c6 -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': 'a4341c43-cd13-4da8-aecf-57bad9fe36b7', 'owner': None} -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [] is too short\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '56edcf61-6bc5-4cfd-b5a8-b436e4739028', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': 42} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/allocations/a4341c43-cd13-4da8-aecf-57bad9fe36b7 -Openstack-Request-Id: req-9191aae6-4e08-4842-921a-6983840054d4 +Openstack-Request-Id: req-8f951c23-f12f-413b-8250-94cf21f760df X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.60 -{"uuid": "a4341c43-cd13-4da8-aecf-57bad9fe36b7", "created_at": "2024-01-06T10:56:44.937743+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/a4341c43-cd13-4da8-aecf-57bad9fe36b7", "rel": "self"}, {"href": "http://localhost/allocations/a4341c43-cd13-4da8-aecf-57bad9fe36b7", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/a4341c43-cd13-4da8-aecf-57bad9fe36b7 {} -GOT:{'uuid': 'a4341c43-cd13-4da8-aecf-57bad9fe36b7', 'created_at': '2024-01-06T10:56:44.937743+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/a4341c43-cd13-4da8-aecf-57bad9fe36b7', 'rel': 'self'}, {'href': 'http://localhost/allocations/a4341c43-cd13-4da8-aecf-57bad9fe36b7', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'a79465ca-7738-424a-866f-9715a6846bb1'} -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 'object', 'null'\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '8ffb9f86-778d-4de7-bc5f-983a65be3455', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}, 'foo': 'bar'} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/allocations/a79465ca-7738-424a-866f-9715a6846bb1 -Openstack-Request-Id: req-0a21bd8d-a1cc-4c3b-bd4c-74bd4ea1f7a7 +Openstack-Request-Id: req-8f50acd9-d6b2-49ca-ade6-279f23a4da59 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.59 -{"uuid": "a79465ca-7738-424a-866f-9715a6846bb1", "created_at": "2024-01-06T10:56:44.989070+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/a79465ca-7738-424a-866f-9715a6846bb1", "rel": "self"}, {"href": "http://localhost/allocations/a79465ca-7738-424a-866f-9715a6846bb1", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/a79465ca-7738-424a-866f-9715a6846bb1 {} -GOT:{'uuid': 'a79465ca-7738-424a-866f-9715a6846bb1', 'created_at': '2024-01-06T10:56:44.989070+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/a79465ca-7738-424a-866f-9715a6846bb1', 'rel': 'self'}, {'href': 'http://localhost/allocations/a79465ca-7738-424a-866f-9715a6846bb1', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '59b515bf-1465-48a2-a302-dbcf1a77905b', 'owner': '54321'} -GOT:Response: 403 Forbidden +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': 'cf64741d-53d5-4bb9-abe4-56a7efdd6c82', '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-20837575-c8be-4893-afc0-4f7ade5e6071 +Openstack-Request-Id: req-c87e2496-e560-4503-8aeb-53d72853e42c 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': '6ce0bece-05e4-4755-8ac7-a3ffceefe175', 'owner': '12345'} -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': '3e9d0cc3-b6bb-4d42-99b5-6d13bbdee004', '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/allocations/6ce0bece-05e4-4755-8ac7-a3ffceefe175 -Openstack-Request-Id: req-53ee8b69-3ce3-4af2-b859-e204c4492ef1 +Openstack-Request-Id: req-47296bef-bfae-40cf-ad3b-9dd5cf66d001 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.60 -{"uuid": "6ce0bece-05e4-4755-8ac7-a3ffceefe175", "created_at": "2024-01-06T10:56:45.099310+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/6ce0bece-05e4-4755-8ac7-a3ffceefe175", "rel": "self"}, {"href": "http://localhost/allocations/6ce0bece-05e4-4755-8ac7-a3ffceefe175", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/6ce0bece-05e4-4755-8ac7-a3ffceefe175 {} -GOT:{'uuid': '6ce0bece-05e4-4755-8ac7-a3ffceefe175', 'created_at': '2024-01-06T10:56:45.099310+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/6ce0bece-05e4-4755-8ac7-a3ffceefe175', 'rel': 'self'}, {'href': 'http://localhost/allocations/6ce0bece-05e4-4755-8ac7-a3ffceefe175', 'rel': 'bookmark'}], 'node_uuid': None} -PATCH: /v1/deploy_templates/87bd1319-40ca-4a6f-bbc7-4a43cfaa0bec [{'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 +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': 'de3eb07d-c99a-4c26-8456-4656632d068b', 'steps': {}, 'extra': {}} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-79a42613-5ae4-4aa8-a694-8af4926a55f9 +Openstack-Request-Id: req-2172f21c-3679-49a6-8a86-de14b219397d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "87bd1319-40ca-4a6f-bbc7-4a43cfaa0bec", "created_at": "2024-01-06T10:56:45.173734+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/87bd1319-40ca-4a6f-bbc7-4a43cfaa0bec", "rel": "self"}, {"href": "http://localhost/deploy_templates/87bd1319-40ca-4a6f-bbc7-4a43cfaa0bec", "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/0f5d5daf-2e2a-4bdd-939b-9ef8dbead6bd [{'path': '/foo', 'value': 'bar', 'op': 'add'}] -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_driver.TestListDrivers.test_raid_logical_disk_properties_cached -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached ... ok -POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {'foo': 123}, 'description': 'data-center-1-chassis'} -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: {} is not of type 'array'\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '5400b14d-f046-485a-a427-086d9db039dd', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': 'not a dict', 'priority': 10}], 'extra': {}} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -Openstack-Request-Id: req-5af1b9ec-4240-4888-8fec-9e85d23fae77 +Openstack-Request-Id: req-5890e361-ab1a-4654-aa1b-dc75964badc7 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-06T10:56:44.864879+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-06T10:56:44.864879+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 +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': 'a5d4c6de-46aa-442c-ba5c-c7990f0b77b3', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': [], 'priority': 10}], 'extra': {}} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-ce3c3671-5eec-4c4f-8aee-3fca9d9550ec +Openstack-Request-Id: req-b2fce4d3-0ca0-4e9e-ba4b-127b118f8dfb 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.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': '75eb3e63-0523-4b34-8dd6-7ef34729be48', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10, 'foo': 'bar'}], 'extra': {}} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/chassis/481e19fa-0641-4832-bda9-1d5030231d06 -Openstack-Request-Id: req-1da6dd8a-76d8-4c53-ad18-10a57362db02 +Openstack-Request-Id: req-3418c591-d1fe-4552-8b74-82f6456ffe89 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "481e19fa-0641-4832-bda9-1d5030231d06", "created_at": "2024-01-06T10:56:44.980256+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/481e19fa-0641-4832-bda9-1d5030231d06", "rel": "self"}, {"href": "http://localhost/chassis/481e19fa-0641-4832-bda9-1d5030231d06", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/481e19fa-0641-4832-bda9-1d5030231d06/nodes", "rel": "self"}, {"href": "http://localhost/chassis/481e19fa-0641-4832-bda9-1d5030231d06/nodes", "rel": "bookmark"}]]} -GET: /v1/chassis {} -GOT:{'chassis': [{'uuid': '481e19fa-0641-4832-bda9-1d5030231d06', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/481e19fa-0641-4832-bda9-1d5030231d06', 'rel': 'self'}, {'href': 'http://localhost/chassis/481e19fa-0641-4832-bda9-1d5030231d06', '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\": \"Schema error for template: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '8d80510f-8cef-433f-ad54-ed20d9366219', '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-0c398be3-1cae-4984-ab18-58fa3a14338f +Openstack-Request-Id: req-4ff70e6d-c6e2-47f9-babc-dc23304d7b9b 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'} +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [3] is not of type 'string'\", \"debuginfo\": null}"} +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_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_chassis.TestListChassis.test_get_custom_fields_invalid_fields +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_fields ... ok GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d5fc3163-9ec7-4f38-9c59-0be609f92399 +Openstack-Request-Id: req-ff5faf82-912b-4d33-87c2-8817e1513611 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 +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-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} +GET: /v1/drivers/fake-hardware-type {} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} +GET: /drivers/fake-hardware-type {} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} +GET: /v1/drivers/fake-hardware-type {} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://foo/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://foo/drivers/fake-hardware-type', 'rel': 'bookmark'}]} +GET: /v1/drivers/fake-hardware-type {} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://foo/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://foo/drivers/fake-hardware-type', 'rel': 'bookmark'}]} +GET: /drivers/fake-hardware-type {} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://foo/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://foo/drivers/fake-hardware-type', 'rel': 'bookmark'}]} +GET: /v1/drivers/fake-hardware-type/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 -Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -Openstack-Request-Id: req-73435ed6-d647-4e1e-bbc9-f1e653e00d09 +Openstack-Request-Id: req-53c02e31-f7e1-48e9-9e46-70829ca016c0 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-06T10:56:45.132160+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': '2024-01-06T10:56:45.132160+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 +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-aabc7877-4052-4a65-af9f-98c1aaa0d942 +Openstack-Request-Id: req-6f02681b-a011-45a4-9669-9f220ba626a5 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/ports/52:54:00:cf:2d:31 -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_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_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.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_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_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_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 -DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +X-Openstack-Ironic-Api-Version: 1.4 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"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-bf1da00a-813b-4fb3-80c3-a84d572aeb5d +Openstack-Request-Id: req-44fd8ddb-c025-4908-82b8-fc4580f94b2c 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 -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 +POST: /v1/events {'events': [{'INVALID': 'fake.event'}]} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-f8bbd831-6a5f-458d-8eda-fc37951a486f +Openstack-Request-Id: req-01a46f06-59a7-4104-89f2-7c7896bada8d X-Openstack-Ironic-Api-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\": \"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-faa7810e-4f16-4870-a139-a2ca17c238a3 +Openstack-Request-Id: req-b456b2b7-8ed4-43c0-bb34-0631c34fb898 X-Openstack-Ironic-Api-Maximum-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/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 +{"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-07407ff9-de13-407f-8d70-38cd33dde8c3 +Openstack-Request-Id: req-59a02926-906b-4661-9c9b-606a6d1514aa 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-06T10:56:44.939343+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-aa70d689-b270-4b18-88bf-d9e8cb646915 +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-8b7d9e00-881f-4c9d-aab7-f28fb24eb263 X-Openstack-Ironic-Api-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-235c7996-6671-4cd6-9d93-587687518688 + +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-cf93ff39-4764-430f-8253-b0b11ab0af32 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-06T10:56:45.056102+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-2b13134c-f3df-4f68-a576-4462b9ad0077 + +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-94f9308f-4275-48c6-8434-a30660c8381e X-Openstack-Ironic-Api-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'}] -GOT:Response: 200 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'}]} +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_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_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.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_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_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.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.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.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.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_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 +: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_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_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_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.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.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.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_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_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.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_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_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_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 +GOT:{'connectors': [{'uuid': '075304c8-2774-4236-9408-2428b628bf2b', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/075304c8-2774-4236-9408-2428b628bf2b', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/075304c8-2774-4236-9408-2428b628bf2b', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'db3cc8c3-1107-4598-a00c-f7892324f9fd', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/db3cc8c3-1107-4598-a00c-f7892324f9fd', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/db3cc8c3-1107-4598-a00c-f7892324f9fd', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '8d9d1f82-ff26-411c-8bcb-cdd14b16030d', 'connector_id': 'test-connector_id-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/8d9d1f82-ff26-411c-8bcb-cdd14b16030d', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/8d9d1f82-ff26-411c-8bcb-cdd14b16030d', '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=8d9d1f82-ff26-411c-8bcb-cdd14b16030d'} +GET: /v1/volume/connectors?fields=uuid,extra {} +GOT:{'connectors': [{'uuid': '4a2e7fbe-b1b6-42bb-a266-3a8705a45813', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/4a2e7fbe-b1b6-42bb-a266-3a8705a45813', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/4a2e7fbe-b1b6-42bb-a266-3a8705a45813', 'rel': 'bookmark'}]}, {'uuid': 'e0a036f2-ef51-4b8e-b77d-ccfa9620de33', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/e0a036f2-ef51-4b8e-b77d-ccfa9620de33', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/e0a036f2-ef51-4b8e-b77d-ccfa9620de33', 'rel': 'bookmark'}]}, {'uuid': '5523b42c-65ea-43f4-86b5-a261485d53e0', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/5523b42c-65ea-43f4-86b5-a261485d53e0', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/5523b42c-65ea-43f4-86b5-a261485d53e0', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=5523b42c-65ea-43f4-86b5-a261485d53e0'} +GET: /v1/volume/connectors {} +GOT:{'connectors': [{'uuid': '4c1ef096-01b0-4bd2-9817-84e064d509f0', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/4c1ef096-01b0-4bd2-9817-84e064d509f0', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/4c1ef096-01b0-4bd2-9817-84e064d509f0', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '2227a8c8-d0b2-4a74-8b09-1936b43495a0', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/2227a8c8-d0b2-4a74-8b09-1936b43495a0', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/2227a8c8-d0b2-4a74-8b09-1936b43495a0', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '59b1edbd-0930-497e-bc63-b2952e17be88', 'connector_id': 'test-connector_id-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/59b1edbd-0930-497e-bc63-b2952e17be88', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/59b1edbd-0930-497e-bc63-b2952e17be88', '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=59b1edbd-0930-497e-bc63-b2952e17be88'} +GET: /v1/volume/connectors?detail=True&limit=3 {} +GOT:{'connectors': [{'uuid': '72b866ec-fb7f-4c16-9dbd-dbaac9d9f80b', 'created_at': '2025-02-07T17:33:03.659994+00:00', 'updated_at': None, 'connector_id': 'test-connector_id-0', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/72b866ec-fb7f-4c16-9dbd-dbaac9d9f80b', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/72b866ec-fb7f-4c16-9dbd-dbaac9d9f80b', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '9aac9df1-94c2-4232-990c-3c1e93967c92', 'created_at': '2025-02-07T17:33:03.661541+00:00', 'updated_at': None, 'connector_id': 'test-connector_id-1', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/9aac9df1-94c2-4232-990c-3c1e93967c92', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/9aac9df1-94c2-4232-990c-3c1e93967c92', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '6b3f32c4-6679-468c-b31e-00b8c67e4943', 'created_at': '2025-02-07T17:33:03.662896+00:00', 'updated_at': None, 'connector_id': 'test-connector_id-2', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/6b3f32c4-6679-468c-b31e-00b8c67e4943', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/6b3f32c4-6679-468c-b31e-00b8c67e4943', '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=6b3f32c4-6679-468c-b31e-00b8c67e4943'} +GET: /v1/volume/connectors?detail=True {} +GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T17:33:03.812826+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-7cf768ea-a6a1-437a-be9f-906bab3be26e +Openstack-Request-Id: req-b6e0a83e-ee9f-4420-bf7a-963524d2720a 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-06T10:56:45.212530+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'}] +{"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-b04df121-2686-4506-a1a3-b88413d33665 +Openstack-Request-Id: req-23623675-484a-47f3-b09c-85c7b42acad1 X-Openstack-Ironic-Api-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'}] +{"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-07T17:33:04.263274+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 +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/volume/connectors/detail {} +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_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_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.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_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_chassis.TestListChassis.test_links +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links ... 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_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_root.TestCheckVersions.test_check_version_ok +ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok ... 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_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_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_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_collection.TestCollection.test_get_next +ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_get_next ... ok +GOT:{'allocations': [{'uuid': '0b11de23-b067-46e1-b662-bda97597105d', 'created_at': '2025-02-07T17:33:02.326008+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/0b11de23-b067-46e1-b662-bda97597105d', 'rel': 'self'}, {'href': 'http://localhost/allocations/0b11de23-b067-46e1-b662-bda97597105d', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '13f1f283-b366-410a-a079-59453989f528', 'created_at': '2025-02-07T17:33:02.329053+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/13f1f283-b366-410a-a079-59453989f528', 'rel': 'self'}, {'href': 'http://localhost/allocations/13f1f283-b366-410a-a079-59453989f528', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '3ee406f3-0501-4c06-8b41-5da0f1d1d93e', 'created_at': '2025-02-07T17:33:02.327564+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/3ee406f3-0501-4c06-8b41-5da0f1d1d93e', 'rel': 'self'}, {'href': 'http://localhost/allocations/3ee406f3-0501-4c06-8b41-5da0f1d1d93e', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/allocations?sort_key=name {} +GOT:{'allocations': [{'uuid': 'c2aa54b8-d7ba-43d9-a7ad-26a57dc5589d', 'created_at': '2025-02-07T17:33:02.446313+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/c2aa54b8-d7ba-43d9-a7ad-26a57dc5589d', 'rel': 'self'}, {'href': 'http://localhost/allocations/c2aa54b8-d7ba-43d9-a7ad-26a57dc5589d', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '7e06b3e2-4051-43cf-b1f0-c8db2bda9330', 'created_at': '2025-02-07T17:33:02.444936+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/7e06b3e2-4051-43cf-b1f0-c8db2bda9330', 'rel': 'self'}, {'href': 'http://localhost/allocations/7e06b3e2-4051-43cf-b1f0-c8db2bda9330', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '2dff60e4-4704-4e1d-8a13-fa04fa683c4e', 'created_at': '2025-02-07T17:33:02.443404+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/2dff60e4-4704-4e1d-8a13-fa04fa683c4e', 'rel': 'self'}, {'href': 'http://localhost/allocations/2dff60e4-4704-4e1d-8a13-fa04fa683c4e', 'rel': 'bookmark'}], 'node_uuid': None}]} +GET: /v1/allocations?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d94072fe-5528-4731-a406-f96c7a8e8133 +Openstack-Request-Id: req-30c5cb19-f2fd-4675-be3f-422e05d40dc6 X-Openstack-Ironic-Api-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 +{"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-3a414d47-d3d3-486f-b7d2-5d49805445b4 +Openstack-Request-Id: req-1e78611d-e25f-4612-beaa-96871ba3d19c 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-06T10:56:45.464352+00:00", "updated_at": "2024-01-06T10:56:45.469919+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'}] -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.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_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_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_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_deploy_template.TestPatch.test_remove_name -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_name ... ok -GOT:{'allocations': [{'uuid': '00f63ec5-746e-461c-afef-40fc2820cd82', 'created_at': '2024-01-06T10:56:44.711268+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/00f63ec5-746e-461c-afef-40fc2820cd82', 'rel': 'self'}, {'href': 'http://localhost/allocations/00f63ec5-746e-461c-afef-40fc2820cd82', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'af3cf05f-00ad-4e91-92f8-5fc50e5ec155', 'created_at': '2024-01-06T10:56:44.713042+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/af3cf05f-00ad-4e91-92f8-5fc50e5ec155', 'rel': 'self'}, {'href': 'http://localhost/allocations/af3cf05f-00ad-4e91-92f8-5fc50e5ec155', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'e542ff2e-8655-4a22-a29a-bc3910276347', 'created_at': '2024-01-06T10:56:44.714599+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/e542ff2e-8655-4a22-a29a-bc3910276347', 'rel': 'self'}, {'href': 'http://localhost/allocations/e542ff2e-8655-4a22-a29a-bc3910276347', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/allocations?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'allocations': [{'uuid': '479fb9ae-6e20-4d7d-a131-eea78473fb47', 'created_at': '2024-01-06T10:56:44.785151+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/479fb9ae-6e20-4d7d-a131-eea78473fb47', 'rel': 'self'}, {'href': 'http://localhost/allocations/479fb9ae-6e20-4d7d-a131-eea78473fb47', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/allocations?node=banana {} +{"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-7fc16923-e2c4-4422-a097-27037e3c64aa +Openstack-Request-Id: req-dda5ab25-929c-4fea-90ec-02ccb388c599 X-Openstack-Ironic-Api-Maximum-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 {} -GOT:{'allocations': [{'uuid': 'b26337d1-0161-45fe-8ea2-7577bccdcaa1', 'created_at': '2024-01-06T10:56:44.887420+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/b26337d1-0161-45fe-8ea2-7577bccdcaa1', 'rel': 'self'}, {'href': 'http://localhost/allocations/b26337d1-0161-45fe-8ea2-7577bccdcaa1', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '89f14e6f-1c85-403a-9249-1f61c198bcd3', 'created_at': '2024-01-06T10:56:44.889183+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/89f14e6f-1c85-403a-9249-1f61c198bcd3', 'rel': 'self'}, {'href': 'http://localhost/allocations/89f14e6f-1c85-403a-9249-1f61c198bcd3', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'e35618f4-d732-479f-8316-e93b924f6af6', 'created_at': '2024-01-06T10:56:44.890789+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/e35618f4-d732-479f-8316-e93b924f6af6', 'rel': 'self'}, {'href': 'http://localhost/allocations/e35618f4-d732-479f-8316-e93b924f6af6', 'rel': 'bookmark'}], 'node_uuid': None}]} -GET: /v1/allocations?owner=12345 {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-9da6c807-c46f-49d6-8b67-515067df008d -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': 'af03f9f7-849f-4480-8ffc-c3ad70ad82db', 'created_at': '2024-01-06T10:56:44.987657+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/af03f9f7-849f-4480-8ffc-c3ad70ad82db', 'rel': 'self'}, {'href': 'http://localhost/allocations/af03f9f7-849f-4480-8ffc-c3ad70ad82db', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'd27a761f-7f99-4dcb-b4a4-ae16fa93897f', 'created_at': '2024-01-06T10:56:44.989529+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/d27a761f-7f99-4dcb-b4a4-ae16fa93897f', 'rel': 'self'}, {'href': 'http://localhost/allocations/d27a761f-7f99-4dcb-b4a4-ae16fa93897f', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '99242f21-b588-43d4-aec0-2e0a9ce7fff2', 'created_at': '2024-01-06T10:56:44.991117+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/99242f21-b588-43d4-aec0-2e0a9ce7fff2', 'rel': 'self'}, {'href': 'http://localhost/allocations/99242f21-b588-43d4-aec0-2e0a9ce7fff2', 'rel': 'bookmark'}], 'node_uuid': None}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation {} -GOT:{'uuid': '99c66517-208e-42cc-839a-696236f96841', 'created_at': '2024-01-06T10:56:45.047934+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/99c66517-208e-42cc-839a-696236f96841', 'rel': 'self'}, {'href': 'http://localhost/allocations/99c66517-208e-42cc-839a-696236f96841', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation/991ad479-bb80-4193-a7c5-c0783aec03c4 {} -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/5422abfc-9aa8-41e7-9768-e40825a3a334', 'rel': 'self'}, {'href': 'http://localhost/allocations/5422abfc-9aa8-41e7-9768-e40825a3a334', 'rel': 'bookmark'}]} -GET: /v1/allocations?fields=uuid,extra {} -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_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_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_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_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_port.TestListPorts.test_collection_links -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links ... 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_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_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_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_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_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.TestAttachDetachVif.test_vif_subcontroller_old_version -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_subcontroller_old_version ... ok +{"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-e2b80646-9638-45fd-b9b9-0bb248e175af +Openstack-Request-Id: req-4d2f5809-1c3b-4d5a-bf84-21f69dc62116 X-Openstack-Ironic-Api-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'}]} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"properties\\\" is an invalid field for sorting\", \"debuginfo\": null}"} +DELETE: /v1/deploy_templates/CUSTOM_DT1 GOT:Response: 204 No Content -Openstack-Request-Id: req-5a2eb895-3e08-4a1d-aad1-ad4614d00286 +Openstack-Request-Id: req-4452bc8d-491b-44cf-8f1b-d618ac114b9b 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'}]} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-944a2a33-11e1-4623-94b5-506c48996a69 -X-Openstack-Ironic-Api-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}"} -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': 'd8fa30b0-d2a7-4710-9df6-45f100c3f23a', 'created_at': '2024-01-06T10:56:44.955679+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/d8fa30b0-d2a7-4710-9df6-45f100c3f23a', 'rel': 'self'}]}, {'uuid': '1bb42cb1-d222-426e-945b-af3ac1b05959', 'created_at': '2024-01-06T10:56:44.957503+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/1bb42cb1-d222-426e-945b-af3ac1b05959', 'rel': 'self'}]}, {'uuid': '1af94e92-4a33-46f1-a9cb-b06881ee9267', 'created_at': '2024-01-06T10:56:44.958908+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/1af94e92-4a33-46f1-a9cb-b06881ee9267', 'rel': 'self'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} -GOT:{'history': [{'uuid': 'fef1cfc3-8639-4eaf-8463-1f3dff97200f', 'created_at': '2024-01-06T10:56:45.014970+00:00', 'severity': None, 'event': 'meow', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/fef1cfc3-8639-4eaf-8463-1f3dff97200f', 'rel': 'self'}]}, {'uuid': '73f5cffc-0b1b-4e93-b95f-d63b56831fce', 'created_at': '2024-01-06T10:56:45.016497+00:00', 'severity': None, 'event': 'purr', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/73f5cffc-0b1b-4e93-b95f-d63b56831fce', 'rel': 'self'}]}, {'uuid': 'a80a3f80-fa86-4737-b300-810647c183b2', 'created_at': '2024-01-06T10:56:45.017970+00:00', 'severity': None, 'event': 'grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/a80a3f80-fa86-4737-b300-810647c183b2', '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': '17bf1193-90d2-430c-98eb-ede051b0ba1c', 'created_at': '2024-01-06T10:56:45.147695+00:00', 'severity': None, 'event': 'meow', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/17bf1193-90d2-430c-98eb-ede051b0ba1c', 'rel': 'self'}]}], 'next': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=None&fields=uuid,created_at,severity,event&limit=1&marker=17bf1193-90d2-430c-98eb-ede051b0ba1c'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=17bf1193-90d2-430c-98eb-ede051b0ba1c {} -GOT:{'history': [{'uuid': '89e19ab8-fdd6-43d8-a953-7e475e339dcc', 'created_at': '2024-01-06T10:56:45.149312+00:00', 'severity': None, 'event': 'purr', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/89e19ab8-fdd6-43d8-a953-7e475e339dcc', 'rel': 'self'}]}], 'next': "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree1',created_at=2024-01-06T10:56:45Z,event='meow',event_type=None,id=1,node_id=1,severity=None,updated_at=None,user='peaches',uuid=17bf1193-90d2-430c-98eb-ede051b0ba1c)&fields=uuid,created_at,severity,event&limit=1&marker=89e19ab8-fdd6-43d8-a953-7e475e339dcc"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=89e19ab8-fdd6-43d8-a953-7e475e339dcc {} -GOT:{'history': [{'uuid': 'f93f7261-676e-4ce6-9453-0352702c0591', 'created_at': '2024-01-06T10:56:45.150733+00:00', 'severity': None, 'event': 'grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/f93f7261-676e-4ce6-9453-0352702c0591', 'rel': 'self'}]}], 'next': "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree2',created_at=2024-01-06T10:56:45Z,event='purr',event_type=None,id=2,node_id=1,severity=None,updated_at=None,user='sage',uuid=89e19ab8-fdd6-43d8-a953-7e475e339dcc)&fields=uuid,created_at,severity,event&limit=1&marker=f93f7261-676e-4ce6-9453-0352702c0591"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/49aa58ad-6f78-456a-b51a-ae510dd8bb8d {} -GOT:{'uuid': '49aa58ad-6f78-456a-b51a-ae510dd8bb8d', 'created_at': '2024-01-06T10:56:45.248379+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/49aa58ad-6f78-456a-b51a-ae510dd8bb8d', '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-6094aefb-6718-4385-a1e6-791f521deb60 -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 {} +DELETE: /v1/deploy_templates/blah 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': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -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_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_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_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_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_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_volume_target.TestPatch.test_remove_uuid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid ... 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 -GOT:{'targets': [{'uuid': '23087992-9d47-421c-ad34-d749b31268ee', 'created_at': '2024-01-06T10:56:44.473548+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/23087992-9d47-421c-ad34-d749b31268ee', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/23087992-9d47-421c-ad34-d749b31268ee', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'b72ade6f-2468-4537-b1c5-de5eba611424', 'created_at': '2024-01-06T10:56:44.475759+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/b72ade6f-2468-4537-b1c5-de5eba611424', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/b72ade6f-2468-4537-b1c5-de5eba611424', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '8f614465-011a-44ed-85a2-076e340c1dfc', 'created_at': '2024-01-06T10:56:44.478199+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/8f614465-011a-44ed-85a2-076e340c1dfc', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/8f614465-011a-44ed-85a2-076e340c1dfc', '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=8f614465-011a-44ed-85a2-076e340c1dfc'} -GET: /v1/volume/targets?detail=True {} -GOT:{'targets': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T10:56:44.552253+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-cfd849e3-2f6e-4a83-9171-4cb8fb1a192f +Openstack-Request-Id: req-07ce3d39-920b-48d2-8b08-80b2cd41cd8b X-Openstack-Ironic-Api-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 -Content-Type: application/json -Openstack-Request-Id: req-63af3cda-42ee-4b9c-a477-92281b72565c +{"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-39a42403-3f18-4c36-9e6a-97ea7337793c X-Openstack-Ironic-Api-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': '2024-01-06T10:56:44.732850+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-dc7dfe2b-5f09-4a17-9229-5f4a1cc4114d + +DELETE: /v1/deploy_templates/e60c8d8a-3b15-4366-abd6-822a6b40a087 +GOT:Response: 204 No Content +Openstack-Request-Id: req-3de1cf8e-49f7-4a95-bf45-798ecf9e6b82 X-Openstack-Ironic-Api-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': 'b5f0bb7b-e1ef-4056-b015-ab790cf54415', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/b5f0bb7b-e1ef-4056-b015-ab790cf54415', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/b5f0bb7b-e1ef-4056-b015-ab790cf54415', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'ba10b7fa-4dce-4104-b7ff-0459eada50db', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/ba10b7fa-4dce-4104-b7ff-0459eada50db', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ba10b7fa-4dce-4104-b7ff-0459eada50db', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '501c6bbf-fcdc-46ff-b72b-92bcdede1288', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/501c6bbf-fcdc-46ff-b72b-92bcdede1288', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/501c6bbf-fcdc-46ff-b72b-92bcdede1288', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/volume/targets?fields=uuid,extra {} -GOT:{'targets': [{'uuid': 'bfd38659-39d5-413a-84b5-f7d23ffbe886', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/bfd38659-39d5-413a-84b5-f7d23ffbe886', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/bfd38659-39d5-413a-84b5-f7d23ffbe886', 'rel': 'bookmark'}]}, {'uuid': '9bca0c10-ae6c-433f-baff-7fad8a6f0409', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/9bca0c10-ae6c-433f-baff-7fad8a6f0409', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/9bca0c10-ae6c-433f-baff-7fad8a6f0409', 'rel': 'bookmark'}]}, {'uuid': '53e6bbdf-a7c9-4840-90b6-f4eea24fba63', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/53e6bbdf-a7c9-4840-90b6-f4eea24fba63', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/53e6bbdf-a7c9-4840-90b6-f4eea24fba63', 'rel': 'bookmark'}]}]} -GET: /v1/volume/targets?fields=boot_index&limit=2 {} -GOT:{'targets': [{'boot_index': 0, 'links': [{'href': 'http://localhost/v1/volume/targets/e4255316-df28-42fa-978f-e52248e843c8', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/e4255316-df28-42fa-978f-e52248e843c8', 'rel': 'bookmark'}]}, {'boot_index': 1, 'links': [{'href': 'http://localhost/v1/volume/targets/cba053e5-08fe-48fc-a400-1f3d406db910', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/cba053e5-08fe-48fc-a400-1f3d406db910', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=boot_index&limit=2&marker=cba053e5-08fe-48fc-a400-1f3d406db910'} -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-6a225c47-252b-4b61-a365-a25ffb49b897 + +DELETE: /v1/deploy_templates/8f19ed7c-f710-43d8-a1f2-daf019de569d.json +GOT:Response: 204 No Content +Openstack-Request-Id: req-b9a9746f-241a-4a31-8b4b-bdb8d66171fa X-Openstack-Ironic-Api-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 {} -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.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 -GOT:Response: 201 Created + +DELETE: /v1/deploy_templates/0886bbcc-dca9-4f14-9ad8-4dfaef6c731e +GOT:Response: 405 Method Not Allowed Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-d20a3308-500f-42f7-941e-fcd56472e48d -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-06T10:56:45.017085+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-06T10:56:45.017085+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 +{"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 -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-a9082f97-2bc9-47f9-82ca-2751edf2f945 -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-06T10:56:45.094882+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 +{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} +GOT:{'history': []} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?detail=true {} +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_volume_connector.TestListVolumeConnectors.test_empty +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_empty ... 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_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_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_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_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_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_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_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_update_conductor_group_old_api +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api ... ok +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 -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-3b4e547a-2dbf-41c9-93ce-9d1d784de58c +Openstack-Request-Id: req-eaa7fe5a-18fa-455f-b87f-fc8e2075222c 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-06T10:56:45.176279+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-06T10:56:45.176279+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 +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': '4cee4419-3b7d-4256-9599-f6e51df7fb3b', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/4cee4419-3b7d-4256-9599-f6e51df7fb3b', 'rel': 'self'}, {'href': 'http://localhost/chassis/4cee4419-3b7d-4256-9599-f6e51df7fb3b', 'rel': 'bookmark'}]}, {'uuid': '7eff4fdc-9578-4bf0-91e9-80b4dccafdee', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/7eff4fdc-9578-4bf0-91e9-80b4dccafdee', 'rel': 'self'}, {'href': 'http://localhost/chassis/7eff4fdc-9578-4bf0-91e9-80b4dccafdee', 'rel': 'bookmark'}]}, {'uuid': '64d76a98-fc58-4de9-bdd6-70bad435d791', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/64d76a98-fc58-4de9-bdd6-70bad435d791', 'rel': 'self'}, {'href': 'http://localhost/chassis/64d76a98-fc58-4de9-bdd6-70bad435d791', 'rel': 'bookmark'}]}]} +GET: /v1/chassis?fields=extra&limit=2 {} +GOT:{'chassis': [{'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/fc6f3c1a-b5fd-4865-9b23-6a0f5e4f76bb', 'rel': 'self'}, {'href': 'http://localhost/chassis/fc6f3c1a-b5fd-4865-9b23-6a0f5e4f76bb', 'rel': 'bookmark'}]}, {'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/d0689b05-fe33-4364-8db2-7b5825cb7360', 'rel': 'self'}, {'href': 'http://localhost/chassis/d0689b05-fe33-4364-8db2-7b5825cb7360', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra&limit=2&marker=d0689b05-fe33-4364-8db2-7b5825cb7360'} +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,extra {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-71b00b2d-b266-4127-8e0e-0f2a61d2e74e +Openstack-Request-Id: req-01fd1264-52c9-4c64-992d-4eb36416130d X-Openstack-Ironic-Api-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 +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 Content-Type: application/json -Location: http://localhost/v1/portgroups/df659934-4ef3-4bca-bce2-b675b65af2f8 -Openstack-Request-Id: req-558d3d28-6f7e-4df5-aea3-7c43e059e046 +Openstack-Request-Id: req-93f52489-4094-4be5-ac4f-615186c8eea3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "df659934-4ef3-4bca-bce2-b675b65af2f8", "created_at": "2024-01-06T10:56:45.363630+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/df659934-4ef3-4bca-bce2-b675b65af2f8", "rel": "self"}, {"href": "http://localhost/portgroups/df659934-4ef3-4bca-bce2-b675b65af2f8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/df659934-4ef3-4bca-bce2-b675b65af2f8/ports", "rel": "self"}, {"href": "http://localhost/portgroups/df659934-4ef3-4bca-bce2-b675b65af2f8/ports", "rel": "bookmark"}]} -GET: /v1/portgroups/df659934-4ef3-4bca-bce2-b675b65af2f8 {} -GOT:{'uuid': 'df659934-4ef3-4bca-bce2-b675b65af2f8', 'created_at': '2024-01-06T10:56:45.363630+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/df659934-4ef3-4bca-bce2-b675b65af2f8', 'rel': 'self'}, {'href': 'http://localhost/portgroups/df659934-4ef3-4bca-bce2-b675b65af2f8', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/df659934-4ef3-4bca-bce2-b675b65af2f8/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/df659934-4ef3-4bca-bce2-b675b65af2f8/ports', 'rel': 'bookmark'}]} -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.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_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_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.TestDelete.test_delete_node -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node ... 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 +{"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-07T17:33:04.427698+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/ca189702-547e-46d9-9ee1-c6127fd290e1 {} +GOT:{'uuid': 'ca189702-547e-46d9-9ee1-c6127fd290e1', 'created_at': '2025-02-07T17:33:04.742528+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/ca189702-547e-46d9-9ee1-c6127fd290e1', 'rel': 'self'}, {'href': 'http://localhost/chassis/ca189702-547e-46d9-9ee1-c6127fd290e1', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/ca189702-547e-46d9-9ee1-c6127fd290e1/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/ca189702-547e-46d9-9ee1-c6127fd290e1/nodes', 'rel': 'bookmark'}]]} +GET: /v1/chassis/ca189702-547e-46d9-9ee1-c6127fd290e1 {} +GOT:{'uuid': 'ca189702-547e-46d9-9ee1-c6127fd290e1', 'created_at': '2025-02-07T17:33:04.742528+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/ca189702-547e-46d9-9ee1-c6127fd290e1', 'rel': 'self'}, {'href': 'http://localhost/chassis/ca189702-547e-46d9-9ee1-c6127fd290e1', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/ca189702-547e-46d9-9ee1-c6127fd290e1/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/ca189702-547e-46d9-9ee1-c6127fd290e1/nodes', 'rel': 'bookmark'}]]} +GET: /chassis/ca189702-547e-46d9-9ee1-c6127fd290e1 {} +GOT:{'uuid': 'ca189702-547e-46d9-9ee1-c6127fd290e1', 'created_at': '2025-02-07T17:33:04.742528+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/ca189702-547e-46d9-9ee1-c6127fd290e1', 'rel': 'self'}, {'href': 'http://localhost/chassis/ca189702-547e-46d9-9ee1-c6127fd290e1', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/ca189702-547e-46d9-9ee1-c6127fd290e1/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/ca189702-547e-46d9-9ee1-c6127fd290e1/nodes', 'rel': 'bookmark'}]]} +GET: /v1/chassis/52af44bc-5b33-48fd-8028-80c50347945f {} +GOT:{'uuid': '52af44bc-5b33-48fd-8028-80c50347945f', 'created_at': '2025-02-07T17:33:04.880632+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/52af44bc-5b33-48fd-8028-80c50347945f', 'rel': 'self'}, {'href': 'http://foo/chassis/52af44bc-5b33-48fd-8028-80c50347945f', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://foo/v1/chassis/52af44bc-5b33-48fd-8028-80c50347945f/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/52af44bc-5b33-48fd-8028-80c50347945f/nodes', 'rel': 'bookmark'}]]} +GET: /v1/chassis/52af44bc-5b33-48fd-8028-80c50347945f {} +GOT:{'uuid': '52af44bc-5b33-48fd-8028-80c50347945f', 'created_at': '2025-02-07T17:33:04.880632+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/52af44bc-5b33-48fd-8028-80c50347945f', 'rel': 'self'}, {'href': 'http://foo/chassis/52af44bc-5b33-48fd-8028-80c50347945f', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://foo/v1/chassis/52af44bc-5b33-48fd-8028-80c50347945f/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/52af44bc-5b33-48fd-8028-80c50347945f/nodes', 'rel': 'bookmark'}]]} +GET: /chassis/52af44bc-5b33-48fd-8028-80c50347945f {} +GOT:{'uuid': '52af44bc-5b33-48fd-8028-80c50347945f', 'created_at': '2025-02-07T17:33:04.880632+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/52af44bc-5b33-48fd-8028-80c50347945f', 'rel': 'self'}, {'href': 'http://foo/chassis/52af44bc-5b33-48fd-8028-80c50347945f', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://foo/v1/chassis/52af44bc-5b33-48fd-8028-80c50347945f/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/52af44bc-5b33-48fd-8028-80c50347945f/nodes', 'rel': 'bookmark'}]]} +GET: /v1/chassis {} +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.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_chassis.TestListChassis.test_many +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many ... 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_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.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_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_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_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_port.TestDelete.test_delete_port_byaddress +ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6e931264-a508-4a48-a1c3-b0f31b90ae29 +Openstack-Request-Id: req-003220f5-d461-4a07-9e41-c3c6fc54d37b 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": "2024-01-06T10:56:44.980407+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 +X-Openstack-Ironic-Api-Version: 1.47 +{"uuid": "fe883ea0-b207-4ea0-8cb6-82f6c5f601f8", "created_at": "2025-02-07T17:33:03.958102+00:00", "updated_at": null, "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/fe883ea0-b207-4ea0-8cb6-82f6c5f601f8", "rel": "self"}, {"href": "http://localhost/nodes/fe883ea0-b207-4ea0-8cb6-82f6c5f601f8", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fe883ea0-b207-4ea0-8cb6-82f6c5f601f8/ports", "rel": "self"}, {"href": "http://localhost/nodes/fe883ea0-b207-4ea0-8cb6-82f6c5f601f8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fe883ea0-b207-4ea0-8cb6-82f6c5f601f8/states", "rel": "self"}, {"href": "http://localhost/nodes/fe883ea0-b207-4ea0-8cb6-82f6c5f601f8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fe883ea0-b207-4ea0-8cb6-82f6c5f601f8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fe883ea0-b207-4ea0-8cb6-82f6c5f601f8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fe883ea0-b207-4ea0-8cb6-82f6c5f601f8/volume", "rel": "self"}, {"href": "http://localhost/nodes/fe883ea0-b207-4ea0-8cb6-82f6c5f601f8/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/b38eeebf-1c58-4003-b285-153aa28db913 [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-b7f0ff3f-ca9f-4f8f-8ee9-ea00b7fb9ca7 +Openstack-Request-Id: req-a826da73-dc36-4555-b011-7f479105b81e 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'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/8b5d0664-66a5-4da0-a6d8-2b50b3d9e4d4 [{'path': '/automated_clean', 'value': False, 'op': 'replace'}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f330701f-8a8e-4cb9-abd2-9fb1fc628039 +Openstack-Request-Id: req-5886cb50-3d37-47ef-89e5-af30c97d35da 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.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-90dbdb7c-792d-4bb3-87d5-11e6e7ae70d8 +Openstack-Request-Id: req-394ca0ff-0b4e-441e-be0b-0673849b18e3 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'}] -GOT:Response: 400 Bad Request +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/fdd4e9b8-452c-4d98-b80e-487a0e0fa797 [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-af295672-b7c4-48b6-92f4-8cf04c98377b +Openstack-Request-Id: req-e74e0c49-35da-416f-ad3f-cee38152ca2d 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.46 +{"uuid": "fdd4e9b8-452c-4d98-b80e-487a0e0fa797", "created_at": "2025-02-07T17:33:04.681448+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/fdd4e9b8-452c-4d98-b80e-487a0e0fa797", "rel": "self"}, {"href": "http://localhost/nodes/fdd4e9b8-452c-4d98-b80e-487a0e0fa797", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fdd4e9b8-452c-4d98-b80e-487a0e0fa797/ports", "rel": "self"}, {"href": "http://localhost/nodes/fdd4e9b8-452c-4d98-b80e-487a0e0fa797/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fdd4e9b8-452c-4d98-b80e-487a0e0fa797/states", "rel": "self"}, {"href": "http://localhost/nodes/fdd4e9b8-452c-4d98-b80e-487a0e0fa797/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fdd4e9b8-452c-4d98-b80e-487a0e0fa797/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fdd4e9b8-452c-4d98-b80e-487a0e0fa797/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fdd4e9b8-452c-4d98-b80e-487a0e0fa797/volume", "rel": "self"}, {"href": "http://localhost/nodes/fdd4e9b8-452c-4d98-b80e-487a0e0fa797/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/4a6ef1bc-7916-4811-9ab1-8f4df96d2ad3 [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-df61c4ed-9076-4986-8c79-8471672f6639 +Openstack-Request-Id: req-20db3943-19f8-416d-aa4b-a11c2dfe2372 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.45 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/8baf64f2-c7ff-4de6-a5f7-11f0c424ed5a [{'path': '/description', 'value': 'meow', 'op': 'replace'}] +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_node.TestNodeHistory.test_get_all_old_version +ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_old_version ... 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.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.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.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.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_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_event.TestPostRBAC.test_network_unbind_port_events +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_unbind_port_events ... ok +INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 +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_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_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_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_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.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_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_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_node.TestNodeHistory.test_get_all_pagination +ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_pagination ... 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.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_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_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.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_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.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.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_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_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_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_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_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_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_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.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_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.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 +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '956ea092-b0c5-43ad-81d7-25842db09cda', '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-1305f232-b4f6-4521-9ca8-10a684b59a2f +Openstack-Request-Id: req-d181e9ae-7b0f-4556-8f28-4f7d5917a6ec 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\": \"Schema error for template: 'foo' is not one of ['power', 'management', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '481e98cf-803d-4de0-a3a2-5b6c0664c6f5', '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-98baf690-01fd-436c-998a-7981aee5ae7f +Openstack-Request-Id: req-16ee9f9d-0266-4f04-b489-6014f0e6660b 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/2d8df928-5edf-40bc-b378-dd1cc1da1492 [{'path': '/allocation_uuid', 'op': 'replace', 'value': '9ba7d823-7f1c-4cd4-bb9e-8b5f85da96de'}] +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': '62f52b36-1bf0-4b94-aff8-ed190e724979', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 'not a number'}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-13dccb4e-aa01-4bd0-957b-b1627960127f +Openstack-Request-Id: req-6def3c74-ff9b-4ac4-926b-6cd21f6a28e2 X-Openstack-Ironic-Api-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/eaf8b33c-d028-49d1-ae4c-a3a8bdc3157c [{'path': '/allocation_uuid', 'op': 'replace', 'value': '97dd646b-611f-4ebd-8e71-35e65fe8b4cf'}] +{"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': 'd82d42c1-0021-4606-b5b5-bf44454ddc4d', 'steps': [{'interface': 'raid', 'step': 42, 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e5a4d618-b8cf-44bd-9cfd-5a417c00fa3e -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/7b965962-d79c-4822-b8b9-b9f13679bcac [{'path': '/conductor', 'op': 'replace', 'value': 'why care'}] -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.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden ... ok -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:44.837913+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-75777dd7-1ac6-45ba-a8bb-6831d1573aea -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': '1d1cb441-c4b6-412c-b8ae-6d866854cb87', 'created_at': '2024-01-06T10:56:45.028008+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/1d1cb441-c4b6-412c-b8ae-6d866854cb87', 'rel': 'self'}, {'href': 'http://localhost/nodes/1d1cb441-c4b6-412c-b8ae-6d866854cb87', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1d1cb441-c4b6-412c-b8ae-6d866854cb87/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1d1cb441-c4b6-412c-b8ae-6d866854cb87/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1d1cb441-c4b6-412c-b8ae-6d866854cb87/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1d1cb441-c4b6-412c-b8ae-6d866854cb87/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1d1cb441-c4b6-412c-b8ae-6d866854cb87/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1d1cb441-c4b6-412c-b8ae-6d866854cb87/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1d1cb441-c4b6-412c-b8ae-6d866854cb87/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1d1cb441-c4b6-412c-b8ae-6d866854cb87/volume', 'rel': 'bookmark'}]}, {'uuid': '60af5bc3-9635-41e2-81be-59eedc2324d0', 'created_at': '2024-01-06T10:56:45.032692+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/60af5bc3-9635-41e2-81be-59eedc2324d0', 'rel': 'self'}, {'href': 'http://localhost/nodes/60af5bc3-9635-41e2-81be-59eedc2324d0', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/60af5bc3-9635-41e2-81be-59eedc2324d0/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/60af5bc3-9635-41e2-81be-59eedc2324d0/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/60af5bc3-9635-41e2-81be-59eedc2324d0/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/60af5bc3-9635-41e2-81be-59eedc2324d0/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/60af5bc3-9635-41e2-81be-59eedc2324d0/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/60af5bc3-9635-41e2-81be-59eedc2324d0/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/60af5bc3-9635-41e2-81be-59eedc2324d0/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/60af5bc3-9635-41e2-81be-59eedc2324d0/volume', 'rel': 'bookmark'}]}, {'uuid': '1ae2779c-255a-4e07-954f-5099a40c7555', 'created_at': '2024-01-06T10:56:45.036676+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/1ae2779c-255a-4e07-954f-5099a40c7555', 'rel': 'self'}, {'href': 'http://localhost/nodes/1ae2779c-255a-4e07-954f-5099a40c7555', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1ae2779c-255a-4e07-954f-5099a40c7555/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1ae2779c-255a-4e07-954f-5099a40c7555/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1ae2779c-255a-4e07-954f-5099a40c7555/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1ae2779c-255a-4e07-954f-5099a40c7555/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1ae2779c-255a-4e07-954f-5099a40c7555/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1ae2779c-255a-4e07-954f-5099a40c7555/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1ae2779c-255a-4e07-954f-5099a40c7555/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1ae2779c-255a-4e07-954f-5099a40c7555/volume', 'rel': 'bookmark'}]}, {'uuid': 'e636e4d2-cdb3-4926-a70f-f6a17a7e51e1', 'created_at': '2024-01-06T10:56:45.040573+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/e636e4d2-cdb3-4926-a70f-f6a17a7e51e1', 'rel': 'self'}, {'href': 'http://localhost/nodes/e636e4d2-cdb3-4926-a70f-f6a17a7e51e1', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/e636e4d2-cdb3-4926-a70f-f6a17a7e51e1/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e636e4d2-cdb3-4926-a70f-f6a17a7e51e1/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e636e4d2-cdb3-4926-a70f-f6a17a7e51e1/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e636e4d2-cdb3-4926-a70f-f6a17a7e51e1/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/e636e4d2-cdb3-4926-a70f-f6a17a7e51e1/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/e636e4d2-cdb3-4926-a70f-f6a17a7e51e1/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/e636e4d2-cdb3-4926-a70f-f6a17a7e51e1/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/e636e4d2-cdb3-4926-a70f-f6a17a7e51e1/volume', 'rel': 'bookmark'}]}, {'uuid': 'c8d97e6d-44b9-47ca-8464-5c5b89e9fb08', 'created_at': '2024-01-06T10:56:45.044437+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/c8d97e6d-44b9-47ca-8464-5c5b89e9fb08', 'rel': 'self'}, {'href': 'http://localhost/nodes/c8d97e6d-44b9-47ca-8464-5c5b89e9fb08', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/c8d97e6d-44b9-47ca-8464-5c5b89e9fb08/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c8d97e6d-44b9-47ca-8464-5c5b89e9fb08/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/c8d97e6d-44b9-47ca-8464-5c5b89e9fb08/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/c8d97e6d-44b9-47ca-8464-5c5b89e9fb08/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/c8d97e6d-44b9-47ca-8464-5c5b89e9fb08/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/c8d97e6d-44b9-47ca-8464-5c5b89e9fb08/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/c8d97e6d-44b9-47ca-8464-5c5b89e9fb08/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/c8d97e6d-44b9-47ca-8464-5c5b89e9fb08/volume', 'rel': 'bookmark'}]}, {'uuid': 'c88a3b87-67e6-4213-ade0-654d8a79bf28', 'created_at': '2024-01-06T10:56:45.048425+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/c88a3b87-67e6-4213-ade0-654d8a79bf28', 'rel': 'self'}, {'href': 'http://localhost/nodes/c88a3b87-67e6-4213-ade0-654d8a79bf28', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/c88a3b87-67e6-4213-ade0-654d8a79bf28/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c88a3b87-67e6-4213-ade0-654d8a79bf28/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/c88a3b87-67e6-4213-ade0-654d8a79bf28/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/c88a3b87-67e6-4213-ade0-654d8a79bf28/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/c88a3b87-67e6-4213-ade0-654d8a79bf28/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/c88a3b87-67e6-4213-ade0-654d8a79bf28/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/c88a3b87-67e6-4213-ade0-654d8a79bf28/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/c88a3b87-67e6-4213-ade0-654d8a79bf28/volume', 'rel': 'bookmark'}]}]}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_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_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_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_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.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-88a07d8e-c0ea-43cd-8704-4e4393481a38 +Openstack-Request-Id: req-a1b7217b-9973-4633-856e-7a0235660975 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 {} -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': 'e33a288e-a5cd-4e6f-a382-65e6cd201af5', 'created_at': '2024-01-06T10:56:45.330072+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/e33a288e-a5cd-4e6f-a382-65e6cd201af5', 'rel': 'self'}, {'href': 'http://localhost/nodes/e33a288e-a5cd-4e6f-a382-65e6cd201af5', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/e33a288e-a5cd-4e6f-a382-65e6cd201af5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e33a288e-a5cd-4e6f-a382-65e6cd201af5/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e33a288e-a5cd-4e6f-a382-65e6cd201af5/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e33a288e-a5cd-4e6f-a382-65e6cd201af5/states', 'rel': 'bookmark'}]}, {'uuid': '1255b734-f6aa-49ff-aa2d-ec07f01b0c45', 'created_at': '2024-01-06T10:56:45.326029+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/1255b734-f6aa-49ff-aa2d-ec07f01b0c45', 'rel': 'self'}, {'href': 'http://localhost/nodes/1255b734-f6aa-49ff-aa2d-ec07f01b0c45', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1255b734-f6aa-49ff-aa2d-ec07f01b0c45/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1255b734-f6aa-49ff-aa2d-ec07f01b0c45/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1255b734-f6aa-49ff-aa2d-ec07f01b0c45/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1255b734-f6aa-49ff-aa2d-ec07f01b0c45/states', 'rel': 'bookmark'}]}, {'uuid': 'f0017511-f334-44f3-9af5-a50c31066bed', 'created_at': '2024-01-06T10:56:45.321573+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/f0017511-f334-44f3-9af5-a50c31066bed', 'rel': 'self'}, {'href': 'http://localhost/nodes/f0017511-f334-44f3-9af5-a50c31066bed', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/f0017511-f334-44f3-9af5-a50c31066bed/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/f0017511-f334-44f3-9af5-a50c31066bed/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/f0017511-f334-44f3-9af5-a50c31066bed/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/f0017511-f334-44f3-9af5-a50c31066bed/states', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?sort_key=resource_class {} -GOT:Response: 406 Not Acceptable +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': '1d82c0f5-02fe-4f5c-9831-193e5f289285', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-1428ba86-a070-417b-9d06-4dbdaa523e39 +Location: http://localhost/v1/deploy_templates/1d82c0f5-02fe-4f5c-9831-193e5f289285 +Openstack-Request-Id: req-fc2dde69-052f-4426-8fbe-c39e06f9f338 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.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_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_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_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_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_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.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_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_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.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_port.TestListPorts.test_detail -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail ... ok -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1d82c0f5-02fe-4f5c-9831-193e5f289285", "created_at": "2025-02-07T17:33:04.941149+00:00", "updated_at": null, "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/1d82c0f5-02fe-4f5c-9831-193e5f289285", "rel": "self"}, {"href": "http://localhost/deploy_templates/1d82c0f5-02fe-4f5c-9831-193e5f289285", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +POST: /v1/deploy_templates {'name': 'not-a-trait', 'uuid': 'f45f7515-d758-486e-ad00-8334599c84d1', '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/deploy_templates/9f39042d-8901-40ed-972b-26f11ba087bd -Openstack-Request-Id: req-e2fc7698-3879-4baf-ac33-c47401d64eaf +Openstack-Request-Id: req-c8df6153-8505-4d0e-bb0c-30da47cd603b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "9f39042d-8901-40ed-972b-26f11ba087bd", "created_at": "2024-01-06T10:56:45.159273+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/9f39042d-8901-40ed-972b-26f11ba087bd", "rel": "self"}, {"href": "http://localhost/deploy_templates/9f39042d-8901-40ed-972b-26f11ba087bd", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": "42"}]} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '260f120c-0b9a-4c63-bc7f-78fac9abba2f', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': '0'}, 'priority': 0}, {'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': '1'}, 'priority': 1}], 'extra': {}} +{"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': '4fd28030-552a-489d-81d8-acf825b5b610', '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-50f82d5a-9cc8-45fa-b31c-7ce4a45c58bc +Openstack-Request-Id: req-d8681da8-0847-4925-9487-5f0bd0b19e8c X-Openstack-Ironic-Api-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/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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'uuid': '059e90c6-7dc7-42d2-a3d2-a02beb71a66e', '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-1c72c917-9a70-455a-a679-6c443314d00a +Openstack-Request-Id: req-512be2db-94a2-41ca-9908-19db895a81c3 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-06T10:56:45.283296+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'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'name' is a required property\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'f5dbae67-54f5-46d6-9276-ced9ccd01cda', 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-cca810a5-2219-4af1-b003-117baf8fbca0 +Openstack-Request-Id: req-89415bed-0467-4b11-8465-a15fe4700563 X-Openstack-Ironic-Api-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\": \"Schema error for template: 'steps' is a required property\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'cdf3a034-a833-4750-90f7-3fe974628ec8', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'priority': 10}], 'extra': {}} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-89ae75d6-4457-467a-882c-729fe8f42230 +Openstack-Request-Id: req-81464bdf-78a1-47dd-abb8-7755be04fa45 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-06T10:56:45.494589+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\": \"Schema error for template: 'args' is a required property\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'be09932c-3ba5-4d78-ae19-c62362b9a080', 'steps': [{'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +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_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_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.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.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 GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1c508808-10af-4e85-8678-8d090b30003c +Openstack-Request-Id: req-5606e028-da3c-4be8-a921-e88b04043ab4 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-06T10:56:45.632479+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'}] +X-Openstack-Ironic-Api-Version: 1.51 +{"uuid": "8baf64f2-c7ff-4de6-a5f7-11f0c424ed5a", "created_at": "2025-02-07T17:33:05.119062+00:00", "updated_at": null, "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/8baf64f2-c7ff-4de6-a5f7-11f0c424ed5a", "rel": "self"}, {"href": "http://localhost/nodes/8baf64f2-c7ff-4de6-a5f7-11f0c424ed5a", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8baf64f2-c7ff-4de6-a5f7-11f0c424ed5a/ports", "rel": "self"}, {"href": "http://localhost/nodes/8baf64f2-c7ff-4de6-a5f7-11f0c424ed5a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8baf64f2-c7ff-4de6-a5f7-11f0c424ed5a/states", "rel": "self"}, {"href": "http://localhost/nodes/8baf64f2-c7ff-4de6-a5f7-11f0c424ed5a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8baf64f2-c7ff-4de6-a5f7-11f0c424ed5a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8baf64f2-c7ff-4de6-a5f7-11f0c424ed5a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8baf64f2-c7ff-4de6-a5f7-11f0c424ed5a/volume", "rel": "self"}, {"href": "http://localhost/nodes/8baf64f2-c7ff-4de6-a5f7-11f0c424ed5a/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/de1b4b29-bb87-4b7b-bb4e-3dbb3ce95eaa [{'path': '/description', 'value': '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-9d6a2ddb-9caf-4c36-a0c0-838e1a0fdbca +Openstack-Request-Id: req-287782b2-9e22-4600-af3b-90dd401afbc7 X-Openstack-Ironic-Api-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 +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-a7e599d0-e4d1-43d7-9ccf-26f71dab61e9 +Openstack-Request-Id: req-a58ca4b2-6c6b-48d9-87b1-5ba4de165467 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-06T10:56:45.854947+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'}] +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'}] +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_utils.TestObjectToDict.test_fields +ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_fields ... 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_volume_connector.TestListVolumeConnectors.test_get_one +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one ... 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_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.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.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.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_utils.TestObjectToDict.test_links +ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_links ... 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_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_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:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c0e345d3-ec15-4492-9004-5f60df24595a +Openstack-Request-Id: req-09026947-5f3d-4e28-b34b-c5602455c3ec X-Openstack-Ironic-Api-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'}] -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_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_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.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_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_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_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_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_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_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_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_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_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_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_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.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_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_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_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_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_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 +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': 'df7253d3-b7b1-4e0b-9d40-612952412e6f'} GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-cf9239e6-16f9-4683-aacd-5210c001037d +Openstack-Request-Id: req-7f4cd7be-fb71-4446-9ac8-7af58c2e1f29 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': '8ecc509b-95d9-4210-8462-4be158bc6a61'} +POST: /v1/nodes/doesntexist/vifs {'id': '219b9e96-6e6e-4872-910a-e3891c8c2bbc'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-98c20aa1-bd39-4790-8851-98722ac322f7 +Openstack-Request-Id: req-12dc3aa5-c4fd-432f-afa0-c1055acff374 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': 'c76ed0de-66b0-4e45-bff0-cb74fab62e12', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'd6e96922-8ee0-46ad-92ee-971078e9a591', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-36c26f31-0929-4d01-8ef3-0378e36eb4ca +Openstack-Request-Id: req-835aaece-8927-4d3d-bf4b-279274c342fd 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': '123e662c-68fe-49f1-9f29-5a03a36b3bb4', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': '03f06913-a6b7-4b4e-ba73-0bff1cdcf633', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} GOT:Response: 204 No Content -Openstack-Request-Id: req-c42cd181-d0f2-46f7-9f45-b97544403e8c +Openstack-Request-Id: req-b4f0c7e6-1241-4fed-ae13-d25763b08fae 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/f9b5a104-dbdf-469a-9f79-8651e37d826a +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/70bbc4b2-8965-4c87-b460-8b0fcc405784 GOT:Response: 204 No Content -Openstack-Request-Id: req-a8311b92-ada8-402c-9707-c5625c3f8679 +Openstack-Request-Id: req-08781608-885f-41a5-9d4b-40b525a3ad6a 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/node-39/vifs/ca4e4076-7c08-4372-9ba2-e69d6f76da39 +DELETE: /v1/nodes/node-39/vifs/d33f7c00-00a9-4713-97c5-41b7c06aa975 GOT:Response: 204 No Content -Openstack-Request-Id: req-fc1b48ae-51e8-4531-9437-66a40f6e31d3 +Openstack-Request-Id: req-c0d50908-df39-490c-a71d-20984dc2fbd2 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/27b6e4ad-3c34-437b-bfb6-1807626b28e3 +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/039dba4a-f2e5-4c83-aece-973b126631f8 GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-7561140c-ff1e-4078-8578-a8d3e77a758e +Openstack-Request-Id: req-c2ae6e12-1038-4322-afe1-abb93fb9b14c 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/fc2c554d-433f-4c9c-9932-536d04b1b022 +DELETE: /v1/nodes/doesntexist/vifs/cb8b9820-3a8d-4138-abb8-cbd6a441fe50 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9b19592a-df90-4d60-910f-463c20bc724b +Openstack-Request-Id: req-066b8480-ecc4-4c56-873e-3b8fd4d02ed0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 @@ -9441,8677 +9858,7030 @@ GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -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 +GET: /v1/nodes?associated=blah {} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-1a901fd9-4fbd-48d7-91c8-6a085621905e +Openstack-Request-Id: req-4a6ad207-e750-4be4-b37d-7a7e84b66298 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 +{"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 {} +GOT:{'nodes': [{'uuid': '9d23dcaf-f006-4a48-a21a-7c76cf29b42a', 'instance_uuid': 'a22b72f5-17f6-4a30-8a0c-30b0be5dac49', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/9d23dcaf-f006-4a48-a21a-7c76cf29b42a', 'rel': 'self'}, {'href': 'http://localhost/nodes/9d23dcaf-f006-4a48-a21a-7c76cf29b42a', 'rel': 'bookmark'}]}, {'uuid': 'ecbe2319-ac14-4ab3-b744-c6653529be61', 'instance_uuid': '81577bb7-5433-4ed5-842e-134d6e32efc9', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/ecbe2319-ac14-4ab3-b744-c6653529be61', 'rel': 'self'}, {'href': 'http://localhost/nodes/ecbe2319-ac14-4ab3-b744-c6653529be61', 'rel': 'bookmark'}]}, {'uuid': '1146615a-f1f4-497f-b9dd-84bdbf638792', 'instance_uuid': '0fbf5e79-5899-4cc4-8f31-5f6d294e40d8', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1146615a-f1f4-497f-b9dd-84bdbf638792', 'rel': 'self'}, {'href': 'http://localhost/nodes/1146615a-f1f4-497f-b9dd-84bdbf638792', 'rel': 'bookmark'}]}, {'uuid': '43cd1ba7-7ba3-4dbd-a8c8-5ff525213bd1', 'instance_uuid': '14b51dad-89b8-4b6e-8173-af4c2c5a9cc7', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/43cd1ba7-7ba3-4dbd-a8c8-5ff525213bd1', 'rel': 'self'}, {'href': 'http://localhost/nodes/43cd1ba7-7ba3-4dbd-a8c8-5ff525213bd1', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?associated=True {} +GOT:{'nodes': [{'uuid': '9d23dcaf-f006-4a48-a21a-7c76cf29b42a', 'instance_uuid': 'a22b72f5-17f6-4a30-8a0c-30b0be5dac49', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/9d23dcaf-f006-4a48-a21a-7c76cf29b42a', 'rel': 'self'}, {'href': 'http://localhost/nodes/9d23dcaf-f006-4a48-a21a-7c76cf29b42a', 'rel': 'bookmark'}]}, {'uuid': 'ecbe2319-ac14-4ab3-b744-c6653529be61', 'instance_uuid': '81577bb7-5433-4ed5-842e-134d6e32efc9', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/ecbe2319-ac14-4ab3-b744-c6653529be61', 'rel': 'self'}, {'href': 'http://localhost/nodes/ecbe2319-ac14-4ab3-b744-c6653529be61', 'rel': 'bookmark'}]}, {'uuid': '1146615a-f1f4-497f-b9dd-84bdbf638792', 'instance_uuid': '0fbf5e79-5899-4cc4-8f31-5f6d294e40d8', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1146615a-f1f4-497f-b9dd-84bdbf638792', 'rel': 'self'}, {'href': 'http://localhost/nodes/1146615a-f1f4-497f-b9dd-84bdbf638792', 'rel': 'bookmark'}]}, {'uuid': '43cd1ba7-7ba3-4dbd-a8c8-5ff525213bd1', 'instance_uuid': '14b51dad-89b8-4b6e-8173-af4c2c5a9cc7', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/43cd1ba7-7ba3-4dbd-a8c8-5ff525213bd1', 'rel': 'self'}, {'href': 'http://localhost/nodes/43cd1ba7-7ba3-4dbd-a8c8-5ff525213bd1', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/?limit=3 {} +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_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.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_node.TestListNodes.test_collection_links +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links ... ok +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-efb062e2-5d7e-4ca4-8985-eaba64eda25d +Openstack-Request-Id: req-9b3a1575-2064-4b4e-9bd6-45edffab0c63 X-Openstack-Ironic-Api-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 +{"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 -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-06f7ef56-2e39-4f07-8bd1-a40b95ac3dbb +Openstack-Request-Id: req-8b0ad6bd-ceb0-43ff-8b0b-1473d86c648e 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-06T10:56:46.307749+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 {} -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_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_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_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_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_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_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_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_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_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_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_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_port.TestPost.test_create_port_doesnt_contain_id -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_doesnt_contain_id ... ok -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'} +{"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-b5f9fc4a-dedc-4439-9ddf-abda5525f219 +Openstack-Request-Id: req-a9a458dc-2651-4d93-948d-ccbd176ae7c5 X-Openstack-Ironic-Api-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'} +{"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-36b64693-e749-4343-8847-2e750727abf2 +Openstack-Request-Id: req-8498ace4-1af4-4b43-85e5-028c6e855c7e X-Openstack-Ironic-Api-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 -Content-Type: application/json -Openstack-Request-Id: req-efe78dbb-6ba8-4db4-b9c7-ac8627ef10a8 -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'} +{"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-9505e388-fadc-417c-b9a5-6990de5f4157 +Openstack-Request-Id: req-b695839f-2c0c-4f38-9106-58401f98f96f X-Openstack-Ironic-Api-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 -Content-Type: application/json -Openstack-Request-Id: req-b4353d70-467f-4598-983c-23eddce4db1e -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-35e5b68a-b711-48a2-ac25-f2ad0d789e28 -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-7cf92f72-dce5-4499-a766-2fff86d9999e -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-06T10:56:46.083380+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'} +{"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-dd98c7a5-9278-42f0-b76d-9ea79c495acf +Openstack-Request-Id: req-9c9c9d83-5b31-4d0d-b443-9f4f51963c0a X-Openstack-Ironic-Api-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 -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-0b68dc54-01a9-405e-871b-7e2add019178 +{"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-c6579dee-5b31-4d3c-b733-8d87093d2e11 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-06T10:56:46.323948+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': '2024-01-06T10:56:46.323948+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'} -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.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_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.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_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_node.TestListNodes.test_empty -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty ... 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_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_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_allocation.TestListAllocations.test_links -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_links ... 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_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_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_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_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_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.TestListPorts.test_detail_query_false -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query_false ... 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.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_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_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_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.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_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_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_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_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_node.TestListNodes.test_get_automated_clean_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_automated_clean_fields ... ok -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-c7729f7b-7c6b-4479-b686-53f2e52260eb -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/2549d5cb-2eb8-4e87-9cb4-372a3b7e774a [{'path': '/deploy_step', 'op': 'replace', 'value': 'deploy this'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-be42d245-d898-4011-8ee8-a52604733858 -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/5b544928-3243-4b71-ae54-9b7e1a704a1e [{'path': '/name', 'op': 'replace', 'value': 'this-is-my-node'}] -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Request-Id: req-bb1583bc-c794-4883-b9f6-46241f2ad12c -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/7eb41b69-98fc-4d02-a4a9-88b8b0eba2a7 [{'path': '/fault', 'op': 'replace', 'value': 'why care'}] + +POST: /v1/events {'events': [{'event': 'network.unbind_port', 'UNKNOWN': 'EVENT_PROPERTY'}]} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-9da3f130-c61d-4457-814f-58c790185776 +Openstack-Request-Id: req-013b0b21-6567-47d8-8888-ba8179cad3b1 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\": \"Schema error for evts: 'port_id' is a required property\", \"debuginfo\": null}"} +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=396afbaf-7998-44c4-935b-cb6ad60d3b28 {} +GOT:{'node': {'uuid': '396afbaf-7998-44c4-935b-cb6ad60d3b28', '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/396afbaf-7998-44c4-935b-cb6ad60d3b28', 'rel': 'self'}, {'href': 'http://localhost/nodes/396afbaf-7998-44c4-935b-cb6ad60d3b28', '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=396afbaf-7998-44c4-935b-cb6ad60d3b28 {} +GOT:{'node': {'uuid': '396afbaf-7998-44c4-935b-cb6ad60d3b28', '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/396afbaf-7998-44c4-935b-cb6ad60d3b28', 'rel': 'self'}, {'href': 'http://localhost/nodes/396afbaf-7998-44c4-935b-cb6ad60d3b28', '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=396afbaf-7998-44c4-935b-cb6ad60d3b28 {} +GOT:{'node': {'uuid': '396afbaf-7998-44c4-935b-cb6ad60d3b28', '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/396afbaf-7998-44c4-935b-cb6ad60d3b28', 'rel': 'self'}, {'href': 'http://localhost/nodes/396afbaf-7998-44c4-935b-cb6ad60d3b28', '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 {} +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 GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-723abe74-33b8-4e7b-bac8-7b68fdbb85a3 +Openstack-Request-Id: req-d31da472-2fbb-48f8-ac78-99ff2f42bab6 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-06T10:56:46.104182+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.1 +{"uuid": "1a4403a6-3da9-4146-8b01-919b8eace881", "created_at": "2025-02-07T17:33:04.185192+00:00", "updated_at": "2025-02-07T17:33:04.195845+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/1a4403a6-3da9-4146-8b01-919b8eace881", "rel": "self"}, {"href": "http://localhost/chassis/1a4403a6-3da9-4146-8b01-919b8eace881", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/1a4403a6-3da9-4146-8b01-919b8eace881/nodes", "rel": "self"}, {"href": "http://localhost/chassis/1a4403a6-3da9-4146-8b01-919b8eace881/nodes", "rel": "bookmark"}]]} +GET: /v1/chassis/1a4403a6-3da9-4146-8b01-919b8eace881 {} +GOT:{'uuid': '1a4403a6-3da9-4146-8b01-919b8eace881', 'created_at': '2025-02-07T17:33:04.185192+00:00', 'updated_at': '2025-02-07T17:33:04.195845+00:00', 'description': 'data-center-1-chassis', 'extra': {'foo1': 'bar1', 'foo2': 'new value', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/1a4403a6-3da9-4146-8b01-919b8eace881', 'rel': 'self'}, {'href': 'http://localhost/chassis/1a4403a6-3da9-4146-8b01-919b8eace881', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/1a4403a6-3da9-4146-8b01-919b8eace881/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/1a4403a6-3da9-4146-8b01-919b8eace881/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 -Openstack-Request-Id: req-04ea8772-a003-410e-aa65-0301bcb541cf -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-06T10:56:46.314219+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/86b5c3da-2525-45ac-986f-d0e58be50151 [{'path': '/description', 'value': 'foo', 'op': 'replace'}] -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.TestPatch.test_patch_policy_update_extra -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra ... ok -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-f4334ad5-f72b-4cc7-bfb8-8955400b388a -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-872edaf7-6cf9-4427-99c0-cc7d4299f173 +Openstack-Request-Id: req-3775bee9-b860-4697-afca-93a6ef6fa98c 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-06T10:56:45.706129+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-06T10:56:45.706129+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'} +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:33:04.331618+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-07T17:33:04.331618+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-6deb04e3-e740-476b-b0ee-23d21b032471 +Openstack-Request-Id: req-e995c05c-39d8-4916-a289-f14964422125 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}"} -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 +PATCH: /v1/chassis/422480fd-3440-4fcd-9f07-1fb501145ce5 [{'path': '/extra/a', 'value': 'b', 'op': 'add'}] +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/volume/targets/1f4ce624-54d7-469b-97ff-cae36be71489 -Openstack-Request-Id: req-b41ab42d-8b17-4d58-b0a0-323b4e67b4ea +Openstack-Request-Id: req-6a7137d8-696d-4e96-b5de-25e42d7ef4a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1f4ce624-54d7-469b-97ff-cae36be71489", "created_at": "2024-01-06T10:56:45.991934+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/1f4ce624-54d7-469b-97ff-cae36be71489", "rel": "self"}, {"href": "http://localhost/volume/targets/1f4ce624-54d7-469b-97ff-cae36be71489", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -GET: /v1/volume/targets/1f4ce624-54d7-469b-97ff-cae36be71489 {} -GOT:{'uuid': '1f4ce624-54d7-469b-97ff-cae36be71489', 'created_at': '2024-01-06T10:56:45.991934+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/1f4ce624-54d7-469b-97ff-cae36be71489', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1f4ce624-54d7-469b-97ff-cae36be71489', '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 -{"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} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 422480fd-3440-4fcd-9f07-1fb501145ce5 could not be found.\", \"debuginfo\": null}"} +DELETE: /v1/ports/52:54:00:cf:2d:31 GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-66b33c48-57e0-4381-b96c-4dbb3aa1f320 +Openstack-Request-Id: req-68f9f521-5cb2-4519-9273-f2cbeada0a0a X-Openstack-Ironic-Api-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-c19dce02-b850-4b42-8979-85af6028dc9b +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-e4821d09-29c2-4a2d-9181-ed00831a0ae3 X-Openstack-Ironic-Api-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 +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-67e8005c-acf3-4c79-b888-f8fbf1d30709 +Openstack-Request-Id: req-b408ff01-97fe-4f60-b43b-c821cd62a3f3 X-Openstack-Ironic-Api-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 +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/260cdb74-24be-4f98-ac9c-1cb5bcb61920 +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f6d4cfdc-c112-410c-928f-22ed9569787d +Openstack-Request-Id: req-f127ff31-a798-46d7-b3f3-e10fde0f47cb X-Openstack-Ironic-Api-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}"} -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.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_node.TestListNodes.test_get_boot_device -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device ... 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?fields=name,hosts {} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.24 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +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-74e76342-84b6-4710-acbe-82d216848da0 +Openstack-Request-Id: req-45bf36f6-f7b2-421f-8f99-408e46b16b6f 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.64 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:05.752377+00:00", "updated_at": "2025-02-07T17:33:05.777922+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-d888a0b0-884f-4ba8-9c67-358d270803d9 +Openstack-Request-Id: req-16541006-722d-40f1-a454-2adc337e61ba 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.63 {"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 {} +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'}] +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_portgroup.TestDelete.test_delete_portgroup_byaddress +ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byaddress ... 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.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_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.TestPatch.test_add_multi +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi ... 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_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.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_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_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_portgroup.TestDelete.test_delete_portgroup_byid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byid ... 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_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_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_port.TestPatch.test_add_node_id +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id ... ok GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-9ea06840-a171-4f66-ad9b-73f2e8b4cd7d -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-4db99e11-943b-49c9-a5e3-31a9dc7f3866 +Openstack-Request-Id: req-84017bfc-c67d-431d-a1d0-cc6e362666f5 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 +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error Message\", \"debuginfo\": null}"} +PATCH: /v1/nodes/44bf44ba-fa86-433b-ab2e-5ef5a40de439 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3197d8f5-267e-40ce-9217-927cbc360c08 +Openstack-Request-Id: req-067812bb-3df4-42ea-9dc2-c046bc81546d 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}"} -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "44bf44ba-fa86-433b-ab2e-5ef5a40de439", "created_at": "2025-02-07T17:33:06.032221+00:00", "updated_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/44bf44ba-fa86-433b-ab2e-5ef5a40de439", "rel": "self"}, {"href": "http://localhost/nodes/44bf44ba-fa86-433b-ab2e-5ef5a40de439", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/44bf44ba-fa86-433b-ab2e-5ef5a40de439/ports", "rel": "self"}, {"href": "http://localhost/nodes/44bf44ba-fa86-433b-ab2e-5ef5a40de439/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/73f3825f-0c54-4026-b24f-095d6a5ef78f [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-751fd62d-4ddd-4112-81c1-d3f0e5a1afca +Openstack-Request-Id: req-d656379a-0087-4344-abb2-148486d3ddc5 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-9ba5e9ca-2347-47bc-b9f3-a8b2a7835b4e +{"uuid": "73f3825f-0c54-4026-b24f-095d6a5ef78f", "created_at": "2025-02-07T17:33:06.184177+00:00", "updated_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/73f3825f-0c54-4026-b24f-095d6a5ef78f", "rel": "self"}, {"href": "http://localhost/nodes/73f3825f-0c54-4026-b24f-095d6a5ef78f", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/73f3825f-0c54-4026-b24f-095d6a5ef78f/ports", "rel": "self"}, {"href": "http://localhost/nodes/73f3825f-0c54-4026-b24f-095d6a5ef78f/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/7896a213-e2b7-4ae1-9594-aae521dc1b8d [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-6dd557aa-5d79-4806-b4d1-9ec15c4ba3c1 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-95803907-ed64-4e66-84ed-380a5c34cc6f -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 -GOT:Response: 404 Not Found +{"uuid": "7896a213-e2b7-4ae1-9594-aae521dc1b8d", "created_at": "2025-02-07T17:33:06.218507+00:00", "updated_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/7896a213-e2b7-4ae1-9594-aae521dc1b8d", "rel": "self"}, {"href": "http://localhost/nodes/7896a213-e2b7-4ae1-9594-aae521dc1b8d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7896a213-e2b7-4ae1-9594-aae521dc1b8d/ports", "rel": "self"}, {"href": "http://localhost/nodes/7896a213-e2b7-4ae1-9594-aae521dc1b8d/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/d6ec3145-880f-4d48-9c1c-45bd02ed1ef2 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b6371c12-5284-4a62-b19a-5c02fc21f4c2 +Openstack-Request-Id: req-a6f767f0-8b06-4d84-98d9-b27a639742cb 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-56355c6a-4b5b-4d45-95cc-c90e8a76334b -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-3a251fc1-276a-41a9-a36e-8092ec7da7af +{"uuid": "d6ec3145-880f-4d48-9c1c-45bd02ed1ef2", "created_at": "2025-02-07T17:33:06.295217+00:00", "updated_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/d6ec3145-880f-4d48-9c1c-45bd02ed1ef2", "rel": "self"}, {"href": "http://localhost/nodes/d6ec3145-880f-4d48-9c1c-45bd02ed1ef2", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d6ec3145-880f-4d48-9c1c-45bd02ed1ef2/ports", "rel": "self"}, {"href": "http://localhost/nodes/d6ec3145-880f-4d48-9c1c-45bd02ed1ef2/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/ef3bbcbb-2da4-4f13-873e-3c288c2499f5 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-990e9b05-b478-4b78-bce7-55b0969461ad 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-991e9ca2-cb9a-4782-b781-264bbe688906 -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 +{"uuid": "ef3bbcbb-2da4-4f13-873e-3c288c2499f5", "created_at": "2025-02-07T17:33:06.358354+00:00", "updated_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/ef3bbcbb-2da4-4f13-873e-3c288c2499f5", "rel": "self"}, {"href": "http://localhost/nodes/ef3bbcbb-2da4-4f13-873e-3c288c2499f5", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ef3bbcbb-2da4-4f13-873e-3c288c2499f5/ports", "rel": "self"}, {"href": "http://localhost/nodes/ef3bbcbb-2da4-4f13-873e-3c288c2499f5/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/5d472a3d-17df-4c63-8d69-d0953a4e8997 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +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.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_volume_connector.TestListVolumeConnectors.test_links +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_links ... ok +GOT:{'chassis': [{'uuid': '3def4fc6-b21f-4489-8a74-de62108c2fee', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/3def4fc6-b21f-4489-8a74-de62108c2fee', 'rel': 'self'}, {'href': 'http://localhost/chassis/3def4fc6-b21f-4489-8a74-de62108c2fee', 'rel': 'bookmark'}]}, {'uuid': '229a7691-5ae4-4169-8147-bdf6185a5f44', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/229a7691-5ae4-4169-8147-bdf6185a5f44', 'rel': 'self'}, {'href': 'http://localhost/chassis/229a7691-5ae4-4169-8147-bdf6185a5f44', 'rel': 'bookmark'}]}, {'uuid': 'cbaf9e97-4a4d-4962-9cd7-ddeedd53bc16', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/cbaf9e97-4a4d-4962-9cd7-ddeedd53bc16', 'rel': 'self'}, {'href': 'http://localhost/chassis/cbaf9e97-4a4d-4962-9cd7-ddeedd53bc16', 'rel': 'bookmark'}]}, {'uuid': '2287b3f6-e750-47fe-9c8b-8e59ff355680', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/2287b3f6-e750-47fe-9c8b-8e59ff355680', 'rel': 'self'}, {'href': 'http://localhost/chassis/2287b3f6-e750-47fe-9c8b-8e59ff355680', 'rel': 'bookmark'}]}, {'uuid': '6b3f6be0-85e1-4266-b4c1-486353b1a8e1', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/6b3f6be0-85e1-4266-b4c1-486353b1a8e1', 'rel': 'self'}, {'href': 'http://localhost/chassis/6b3f6be0-85e1-4266-b4c1-486353b1a8e1', 'rel': 'bookmark'}]}]} +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes {} +GOT:{'nodes': [{'uuid': '1ed2bfbc-4657-4461-a8ba-7b7c5310addb', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1ed2bfbc-4657-4461-a8ba-7b7c5310addb', 'rel': 'self'}, {'href': 'http://localhost/nodes/1ed2bfbc-4657-4461-a8ba-7b7c5310addb', 'rel': 'bookmark'}]}, {'uuid': 'c60d0458-e4e2-41b3-99f5-cb676006e174', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/c60d0458-e4e2-41b3-99f5-cb676006e174', 'rel': 'self'}, {'href': 'http://localhost/nodes/c60d0458-e4e2-41b3-99f5-cb676006e174', 'rel': 'bookmark'}]}]} +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes?limit=1 {} +GOT:{'nodes': [{'uuid': '1ed2bfbc-4657-4461-a8ba-7b7c5310addb', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1ed2bfbc-4657-4461-a8ba-7b7c5310addb', 'rel': 'self'}, {'href': 'http://localhost/nodes/1ed2bfbc-4657-4461-a8ba-7b7c5310addb', '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=1ed2bfbc-4657-4461-a8ba-7b7c5310addb'} +GET: /v1/chassis/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/nodes {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-39d1647b-9820-44ca-b516-3d5d73f3a369 +Openstack-Request-Id: req-4fadb731-50f5-4c93-a37a-49daa21c49f5 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 -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.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.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_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.TestDelete.test_delete_ports_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource ... ok -ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_authenticated -ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_authenticated ... ok -GOT:{'allocations': [{'uuid': '91d1e736-4192-4700-9c41-0d268087a8a4', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/91d1e736-4192-4700-9c41-0d268087a8a4', 'rel': 'self'}, {'href': 'http://localhost/allocations/91d1e736-4192-4700-9c41-0d268087a8a4', 'rel': 'bookmark'}]}, {'uuid': '57139e9a-0361-4073-a335-d1a0d947d613', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/57139e9a-0361-4073-a335-d1a0d947d613', 'rel': 'self'}, {'href': 'http://localhost/allocations/57139e9a-0361-4073-a335-d1a0d947d613', 'rel': 'bookmark'}]}, {'uuid': 'f33d3cae-7feb-4393-8d8b-aa95cfa6ff3b', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/f33d3cae-7feb-4393-8d8b-aa95cfa6ff3b', 'rel': 'self'}, {'href': 'http://localhost/allocations/f33d3cae-7feb-4393-8d8b-aa95cfa6ff3b', 'rel': 'bookmark'}]}]} -GET: /v1/allocations?fields=node_uuid&limit=2 {} -GOT:{'allocations': [{'links': [{'href': 'http://localhost/v1/allocations/ce62dcf4-23ea-4a64-b3ce-7634d24e899f', 'rel': 'self'}, {'href': 'http://localhost/allocations/ce62dcf4-23ea-4a64-b3ce-7634d24e899f', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'links': [{'href': 'http://localhost/v1/allocations/fea2714c-edc3-4a83-82a4-b3d0d522b88f', 'rel': 'self'}, {'href': 'http://localhost/allocations/fea2714c-edc3-4a83-82a4-b3d0d522b88f', '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=fea2714c-edc3-4a83-82a4-b3d0d522b88f'} -GET: /v1/allocations/8fd35d02-01f1-4780-b618-bf38344fe8a4?fields=uuid,spongebob {} +{"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-07T17:33:05.522431+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-5dfeff29-9634-4dd9-a71f-dab65116d59a +Openstack-Request-Id: req-2af6056b-7beb-4cfd-8b88-7f7a54dc27ca X-Openstack-Ironic-Api-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/bff5ae75-2da7-478c-b3b2-0160af8c41c8 {} -GOT:{'uuid': 'bff5ae75-2da7-478c-b3b2-0160af8c41c8', 'created_at': '2024-01-06T10:56:45.678637+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/bff5ae75-2da7-478c-b3b2-0160af8c41c8', 'rel': 'self'}, {'href': 'http://localhost/allocations/bff5ae75-2da7-478c-b3b2-0160af8c41c8', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/allocations/dc74b4c0-df00-4a6b-8e30-6527717aab29?fields=resource_class,extra {} -GOT:{'extra': {}, 'resource_class': 'baremetal', 'links': [{'href': 'http://localhost/v1/allocations/dc74b4c0-df00-4a6b-8e30-6527717aab29', 'rel': 'self'}, {'href': 'http://localhost/allocations/dc74b4c0-df00-4a6b-8e30-6527717aab29', 'rel': 'bookmark'}]} -GET: /v1/allocations/4d4c356d-e1f0-4693-9b72-5812a74d928c {} -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/64261b63-6300-4680-92ab-eeca942d66d1.json {} -GOT:{'uuid': '64261b63-6300-4680-92ab-eeca942d66d1', 'created_at': '2024-01-06T10:56:46.143736+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/64261b63-6300-4680-92ab-eeca942d66d1', 'rel': 'self'}, {'href': 'http://localhost/allocations/64261b63-6300-4680-92ab-eeca942d66d1', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/allocations/c2acdc7e-6504-457d-af4d-8c685fcfac95 {} -GOT:{'uuid': 'c2acdc7e-6504-457d-af4d-8c685fcfac95', 'created_at': '2024-01-06T10:56:46.248426+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/c2acdc7e-6504-457d-af4d-8c685fcfac95', 'rel': 'self'}, {'href': 'http://localhost/allocations/c2acdc7e-6504-457d-af4d-8c685fcfac95', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/allocations/6cc50b88-77fc-4380-aece-5e70d4ebc097 {} -GOT:{'uuid': '6cc50b88-77fc-4380-aece-5e70d4ebc097', 'created_at': '2024-01-06T10:56:46.340448+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/6cc50b88-77fc-4380-aece-5e70d4ebc097', 'rel': 'self'}, {'href': 'http://localhost/allocations/6cc50b88-77fc-4380-aece-5e70d4ebc097', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/allocations/d4c05717-e071-4e44-b2f5-346ceee26730?fields=owner {} -GOT:{'owner': '12345', 'links': [{'href': 'http://localhost/v1/allocations/d4c05717-e071-4e44-b2f5-346ceee26730', 'rel': 'self'}, {'href': 'http://localhost/allocations/d4c05717-e071-4e44-b2f5-346ceee26730', 'rel': 'bookmark'}]} -GET: /v1/allocations/cf302613-ec2a-45c9-aba8-367a130daec1 {} -GOT:{'uuid': 'cf302613-ec2a-45c9-aba8-367a130daec1', 'created_at': '2024-01-06T10:56:46.457533+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/cf302613-ec2a-45c9-aba8-367a130daec1', 'rel': 'self'}, {'href': 'http://localhost/allocations/cf302613-ec2a-45c9-aba8-367a130daec1', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/allocations/cf302613-ec2a-45c9-aba8-367a130daec1 {} -GOT:{'uuid': 'cf302613-ec2a-45c9-aba8-367a130daec1', 'created_at': '2024-01-06T10:56:46.457533+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/cf302613-ec2a-45c9-aba8-367a130daec1', 'rel': 'self'}, {'href': 'http://localhost/allocations/cf302613-ec2a-45c9-aba8-367a130daec1', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /allocations/cf302613-ec2a-45c9-aba8-367a130daec1 {} -GOT:{'uuid': 'cf302613-ec2a-45c9-aba8-367a130daec1', 'created_at': '2024-01-06T10:56:46.457533+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/cf302613-ec2a-45c9-aba8-367a130daec1', 'rel': 'self'}, {'href': 'http://localhost/allocations/cf302613-ec2a-45c9-aba8-367a130daec1', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/allocations {} -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_allocation.TestListAllocations.test_one -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_one ... 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 -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_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.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.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.test_middleware.TestBasicAuthMiddleware.test_not_authenticated -ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_not_authenticated ... 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_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_middleware.TestBasicAuthMiddleware.test_public_unauthenticated -ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_public_unauthenticated ... ok +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': '504ceef8-8bd6-4c05-89ef-ba6aa738de5c', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/504ceef8-8bd6-4c05-89ef-ba6aa738de5c', 'rel': 'self'}, {'href': 'http://localhost/chassis/504ceef8-8bd6-4c05-89ef-ba6aa738de5c', 'rel': 'bookmark'}]}, {'uuid': 'e15fba6b-1e54-4b80-93bb-3127812c90c8', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/e15fba6b-1e54-4b80-93bb-3127812c90c8', 'rel': 'self'}, {'href': 'http://localhost/chassis/e15fba6b-1e54-4b80-93bb-3127812c90c8', 'rel': 'bookmark'}]}, {'uuid': 'f598e8c4-c079-4ec8-852d-def3ccfc70b7', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/f598e8c4-c079-4ec8-852d-def3ccfc70b7', 'rel': 'self'}, {'href': 'http://localhost/chassis/f598e8c4-c079-4ec8-852d-def3ccfc70b7', 'rel': 'bookmark'}]}]} +GET: /v1/chassis?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-a45f25c6-5b8d-404e-952f-2bfe3490ef3e -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-da2e49b4-602a-44ca-9768-498217999347 +Openstack-Request-Id: req-e932d9e2-f817-4690-a407-d58e8ea9d107 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 +{"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-b35d19dd-c4f9-4f7e-9990-632cf82f177e +Openstack-Request-Id: req-58211351-1cc2-4324-94bb-934b89546bd8 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/44da44a7-5e96-421a-b4e0-2af591a0912a -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} +GET: /v1/conductors/?limit=3 {} +GOT:{'conductors': [{'hostname': 'a1c49fb2-92a3-4bc6-aea5-ae5cabafb2c5', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/a1c49fb2-92a3-4bc6-aea5-ae5cabafb2c5', 'rel': 'self'}, {'href': 'http://localhost/conductors/a1c49fb2-92a3-4bc6-aea5-ae5cabafb2c5', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '301458fa-1f35-4d8d-bfa1-94e090ee9fdf', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/301458fa-1f35-4d8d-bfa1-94e090ee9fdf', 'rel': 'self'}, {'href': 'http://localhost/conductors/301458fa-1f35-4d8d-bfa1-94e090ee9fdf', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '9c86be24-ea5f-4212-a45e-473dd4d19e8b', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/9c86be24-ea5f-4212-a45e-473dd4d19e8b', 'rel': 'self'}, {'href': 'http://localhost/conductors/9c86be24-ea5f-4212-a45e-473dd4d19e8b', 'rel': 'bookmark'}], 'alive': True}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=9c86be24-ea5f-4212-a45e-473dd4d19e8b'} +GET: /v1/conductors?fields=hostname,alive {} +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_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_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_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_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.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 +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-f2960b89-ef08-44b9-93e8-1d935edae450 +Openstack-Request-Id: req-46c275a4-ea8d-4c95-9061-a66079354fdb 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/?limit=3 {} -GOT:{'ports': [{'uuid': '67e2a5be-1d59-4bb0-bb79-78da965e2879', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/67e2a5be-1d59-4bb0-bb79-78da965e2879', 'rel': 'self'}, {'href': 'http://localhost/ports/67e2a5be-1d59-4bb0-bb79-78da965e2879', 'rel': 'bookmark'}]}, {'uuid': '46935794-c202-4f0c-b610-a5a3b07d1a80', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/46935794-c202-4f0c-b610-a5a3b07d1a80', 'rel': 'self'}, {'href': 'http://localhost/ports/46935794-c202-4f0c-b610-a5a3b07d1a80', 'rel': 'bookmark'}]}, {'uuid': '65cd0663-a8f5-4a4a-9414-1663c1439166', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/65cd0663-a8f5-4a4a-9414-1663c1439166', 'rel': 'self'}, {'href': 'http://localhost/ports/65cd0663-a8f5-4a4a-9414-1663c1439166', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=65cd0663-a8f5-4a4a-9414-1663c1439166'} -GET: /v1/ports?fields=address,uuid {} -GOT:{'ports': [{'uuid': 'dc89bb98-b51d-48ae-95ad-9e005c16ead2', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/dc89bb98-b51d-48ae-95ad-9e005c16ead2', 'rel': 'self'}, {'href': 'http://localhost/ports/dc89bb98-b51d-48ae-95ad-9e005c16ead2', 'rel': 'bookmark'}]}, {'uuid': '7252f233-cb6a-4b73-8901-f7236cfb5971', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/7252f233-cb6a-4b73-8901-f7236cfb5971', 'rel': 'self'}, {'href': 'http://localhost/ports/7252f233-cb6a-4b73-8901-f7236cfb5971', 'rel': 'bookmark'}]}, {'uuid': 'a511b80a-b4f8-4e20-b47b-e92580ca07ce', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/a511b80a-b4f8-4e20-b47b-e92580ca07ce', 'rel': 'self'}, {'href': 'http://localhost/ports/a511b80a-b4f8-4e20-b47b-e92580ca07ce', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=a511b80a-b4f8-4e20-b47b-e92580ca07ce'} -GET: /v1/ports {} -GOT:{'ports': [{'uuid': '6e3a4239-55b5-405a-9f68-94d82090fbd2', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/6e3a4239-55b5-405a-9f68-94d82090fbd2', 'rel': 'self'}, {'href': 'http://localhost/ports/6e3a4239-55b5-405a-9f68-94d82090fbd2', 'rel': 'bookmark'}]}, {'uuid': 'e699d349-5b6e-480a-b24a-515d8146aa8e', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/e699d349-5b6e-480a-b24a-515d8146aa8e', 'rel': 'self'}, {'href': 'http://localhost/ports/e699d349-5b6e-480a-b24a-515d8146aa8e', 'rel': 'bookmark'}]}, {'uuid': '84afb3ab-2714-47cc-9b00-a8b341e29b80', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/84afb3ab-2714-47cc-9b00-a8b341e29b80', 'rel': 'self'}, {'href': 'http://localhost/ports/84afb3ab-2714-47cc-9b00-a8b341e29b80', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=84afb3ab-2714-47cc-9b00-a8b341e29b80'} -GET: /v1/ports/detail {} -GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T10:56:46.109814+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 {} +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': '6b82cc73-bd87-478c-9496-2ca31b01cf05', 'connector_id': 'test-value-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/6b82cc73-bd87-478c-9496-2ca31b01cf05', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/6b82cc73-bd87-478c-9496-2ca31b01cf05', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '4843af29-f126-43e3-a4a7-b6667eab1054', 'connector_id': 'test-value-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/4843af29-f126-43e3-a4a7-b6667eab1054', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/4843af29-f126-43e3-a4a7-b6667eab1054', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'f8462e40-e284-4e03-abd2-c517e4197005', 'connector_id': 'test-value-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/f8462e40-e284-4e03-abd2-c517e4197005', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/f8462e40-e284-4e03-abd2-c517e4197005', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/volume/connectors?fields=uuid,extra {} +GOT:{'connectors': [{'uuid': '37695052-9aa8-4422-99bd-8bd3e4cd2035', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/37695052-9aa8-4422-99bd-8bd3e4cd2035', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/37695052-9aa8-4422-99bd-8bd3e4cd2035', 'rel': 'bookmark'}]}, {'uuid': 'fe97431d-6cd2-4e1c-a7d0-7c8f2c3a3617', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/fe97431d-6cd2-4e1c-a7d0-7c8f2c3a3617', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/fe97431d-6cd2-4e1c-a7d0-7c8f2c3a3617', 'rel': 'bookmark'}]}, {'uuid': 'ac53b724-6be0-4889-8c9e-c0d5549d3814', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/ac53b724-6be0-4889-8c9e-c0d5549d3814', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/ac53b724-6be0-4889-8c9e-c0d5549d3814', '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/4bfad638-a3b8-4349-9722-e8bb63e2538d', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/4bfad638-a3b8-4349-9722-e8bb63e2538d', 'rel': 'bookmark'}]}, {'connector_id': 'test-connector_id-1', 'links': [{'href': 'http://localhost/v1/volume/connectors/6df64e1b-c97c-40d7-b118-89672685c422', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/6df64e1b-c97c-40d7-b118-89672685c422', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=connector_id&limit=2&marker=6df64e1b-c97c-40d7-b118-89672685c422'} +GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-176707c0-5c32-4ac5-8ecb-8aeab7ebc5da -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-697ac2bd-ab23-4b24-a19a-4bbc8b9f539e -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 {} -GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T10:56:46.393963+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-06T10:56:46.458333+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_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_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.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.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.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.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_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.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.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_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_root.TestRoot.test_no_html_errors -ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors ... ok -GOT:Response: 200 OK +{"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-0748740f-0a1a-41d1-9c9c-6babd0dcfd63 +Openstack-Request-Id: req-cb513bbd-66b0-4da1-b095-daf959e9be01 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "86b5c3da-2525-45ac-986f-d0e58be50151", "created_at": "2024-01-06T10:56:46.454161+00:00", "updated_at": null, "automated_clean": null, "bios_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/86b5c3da-2525-45ac-986f-d0e58be50151", "rel": "self"}, {"href": "http://localhost/nodes/86b5c3da-2525-45ac-986f-d0e58be50151", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/86b5c3da-2525-45ac-986f-d0e58be50151/ports", "rel": "self"}, {"href": "http://localhost/nodes/86b5c3da-2525-45ac-986f-d0e58be50151/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/86b5c3da-2525-45ac-986f-d0e58be50151/states", "rel": "self"}, {"href": "http://localhost/nodes/86b5c3da-2525-45ac-986f-d0e58be50151/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/86b5c3da-2525-45ac-986f-d0e58be50151/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/86b5c3da-2525-45ac-986f-d0e58be50151/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/86b5c3da-2525-45ac-986f-d0e58be50151/volume", "rel": "self"}, {"href": "http://localhost/nodes/86b5c3da-2525-45ac-986f-d0e58be50151/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/dac54b48-7316-4721-8b97-5cb05a2f62f3 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"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-07T17:33:05.791421+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 -Openstack-Request-Id: req-ec9a7d38-881e-4c90-a51f-06aedfb17fcc +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/volume/connectors/876c65e3-8c13-45d5-90f8-105bb010610c {} +GOT:{'uuid': '876c65e3-8c13-45d5-90f8-105bb010610c', 'created_at': '2025-02-07T17:33:06.410908+00:00', 'updated_at': None, 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/876c65e3-8c13-45d5-90f8-105bb010610c', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/876c65e3-8c13-45d5-90f8-105bb010610c', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/volume/connectors/876c65e3-8c13-45d5-90f8-105bb010610c {} +GOT:{'uuid': '876c65e3-8c13-45d5-90f8-105bb010610c', 'created_at': '2025-02-07T17:33:06.410908+00:00', 'updated_at': None, 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/876c65e3-8c13-45d5-90f8-105bb010610c', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/876c65e3-8c13-45d5-90f8-105bb010610c', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /volume/connectors/876c65e3-8c13-45d5-90f8-105bb010610c {} +GOT:{'uuid': '876c65e3-8c13-45d5-90f8-105bb010610c', 'created_at': '2025-02-07T17:33:06.410908+00:00', 'updated_at': None, 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/876c65e3-8c13-45d5-90f8-105bb010610c', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/876c65e3-8c13-45d5-90f8-105bb010610c', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/volume/connectors {} +DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 204 No Content +Openstack-Request-Id: req-351be61f-8aeb-4b8a-905e-301c3b03dc00 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "dac54b48-7316-4721-8b97-5cb05a2f62f3", "created_at": "2024-01-06T10:56:46.568621+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/dac54b48-7316-4721-8b97-5cb05a2f62f3", "rel": "self"}, {"href": "http://localhost/nodes/dac54b48-7316-4721-8b97-5cb05a2f62f3", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/dac54b48-7316-4721-8b97-5cb05a2f62f3/ports", "rel": "self"}, {"href": "http://localhost/nodes/dac54b48-7316-4721-8b97-5cb05a2f62f3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/dac54b48-7316-4721-8b97-5cb05a2f62f3/states", "rel": "self"}, {"href": "http://localhost/nodes/dac54b48-7316-4721-8b97-5cb05a2f62f3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/dac54b48-7316-4721-8b97-5cb05a2f62f3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/dac54b48-7316-4721-8b97-5cb05a2f62f3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/dac54b48-7316-4721-8b97-5cb05a2f62f3/volume", "rel": "self"}, {"href": "http://localhost/nodes/dac54b48-7316-4721-8b97-5cb05a2f62f3/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/3423afe0-7f27-4842-b21f-64831aaaacf9 [{'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_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.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_port.TestListPorts.test_empty -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty ... 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.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.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.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 -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T10:56:45.298914+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/f4ca465f-6baa-48af-8307-8d012c52d94c {} -GOT:{'uuid': 'f4ca465f-6baa-48af-8307-8d012c52d94c', 'created_at': '2024-01-06T10:56:45.603346+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/f4ca465f-6baa-48af-8307-8d012c52d94c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/f4ca465f-6baa-48af-8307-8d012c52d94c', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/volume/targets/f4ca465f-6baa-48af-8307-8d012c52d94c {} -GOT:{'uuid': 'f4ca465f-6baa-48af-8307-8d012c52d94c', 'created_at': '2024-01-06T10:56:45.603346+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/f4ca465f-6baa-48af-8307-8d012c52d94c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/f4ca465f-6baa-48af-8307-8d012c52d94c', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /volume/targets/f4ca465f-6baa-48af-8307-8d012c52d94c {} -GOT:{'uuid': 'f4ca465f-6baa-48af-8307-8d012c52d94c', 'created_at': '2024-01-06T10:56:45.603346+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/f4ca465f-6baa-48af-8307-8d012c52d94c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/f4ca465f-6baa-48af-8307-8d012c52d94c', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/volume/targets {} -GOT:{'targets': [{'uuid': '69d744d2-e5c3-4f14-9115-bd2b14005737', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/69d744d2-e5c3-4f14-9115-bd2b14005737', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/69d744d2-e5c3-4f14-9115-bd2b14005737', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '00b63298-879f-464b-badd-96149e098820', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/00b63298-879f-464b-badd-96149e098820', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/00b63298-879f-464b-badd-96149e098820', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'd5d41e9e-75bf-4f53-a62d-ea5272b0c55d', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/d5d41e9e-75bf-4f53-a62d-ea5272b0c55d', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/d5d41e9e-75bf-4f53-a62d-ea5272b0c55d', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'ed30eb06-dbce-41f2-838e-e0e27ff6e55f', 'boot_index': 3, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/ed30eb06-dbce-41f2-838e-e0e27ff6e55f', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ed30eb06-dbce-41f2-838e-e0e27ff6e55f', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '34c03380-2bd1-488b-8e8c-b817fbb6aa8a', 'boot_index': 4, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/34c03380-2bd1-488b-8e8c-b817fbb6aa8a', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/34c03380-2bd1-488b-8e8c-b817fbb6aa8a', '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 {} + +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\": \"\"}"} -GET: /v1/volume/targets?sort_key=uuid {} -GOT:{'targets': [{'uuid': '55ec5623-4240-4c13-9d5e-73914b61c9c2', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/55ec5623-4240-4c13-9d5e-73914b61c9c2', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/55ec5623-4240-4c13-9d5e-73914b61c9c2', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '79636949-9684-48ee-b17d-f3c4db6ad42c', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/79636949-9684-48ee-b17d-f3c4db6ad42c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/79636949-9684-48ee-b17d-f3c4db6ad42c', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'fe0b9d08-d9a3-4357-860b-7f6c8919036f', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/fe0b9d08-d9a3-4357-860b-7f6c8919036f', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/fe0b9d08-d9a3-4357-860b-7f6c8919036f', '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-87e9756d-e7e7-4ae9-95e6-4f1c0c278d5e -X-Openstack-Ironic-Api-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 {} +DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-2215843b-2c2a-4a27-aaaa-f493b0bedc3e +Openstack-Request-Id: req-d3009a39-96cf-4f44-8dc7-d7c8db78cc03 X-Openstack-Ironic-Api-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 +{"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-04d6dde1-348e-4e66-878f-127402b1f494 +Openstack-Request-Id: req-d926b36d-b99b-472f-b917-36913cb07d7a X-Openstack-Ironic-Api-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}"} +{"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 post /v1/nodes POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} -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.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_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.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.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 -GOT:Response: 200 OK +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-34489698-89cf-4bd1-bbe8-9e3eec60c9f4 +Openstack-Request-Id: req-5b6fb753-bf7b-4936-ba2f-64ee7e448e8a 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-06T10:56:45.464352+00:00", "updated_at": "2024-01-06T10:56:45.469919+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 +{"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-9e3de679-9dc3-4aa0-8295-7270701a299d +Openstack-Request-Id: req-5b6fb753-bf7b-4936-ba2f-64ee7e448e8a X-Openstack-Ironic-Api-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 +{"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-029fc276-94bd-40fb-b9a1-815ceefbdff1 +Openstack-Request-Id: req-de199957-6891-4bac-a14d-b281d98f3b6d X-Openstack-Ironic-Api-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'}] -GOT:Response: 400 Bad Request +{"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-acd2df48-59a9-49a8-af17-5fb4469ebcb8 +Openstack-Request-Id: req-de199957-6891-4bac-a14d-b281d98f3b6d X-Openstack-Ironic-Api-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 +{"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-3bd26037-2649-46da-9edb-cf49004a23e6 +Openstack-Request-Id: req-a9a99ba7-263b-4b45-9f1b-521850278a65 X-Openstack-Ironic-Api-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 +{"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-15bd51ec-fd60-49fe-bff4-9a30fa74f7f4 +Openstack-Request-Id: req-a9a99ba7-263b-4b45-9f1b-521850278a65 X-Openstack-Ironic-Api-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'}] +{"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-6df8f078-c3b8-4246-af0a-cce4c511fc5d +Openstack-Request-Id: req-ed6215c9-9281-44e4-ae6a-39cde5a6d5b7 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-06T10:56:46.271311+00:00", "updated_at": "2024-01-06T10:56:46.276422+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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:06.504421+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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 +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_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_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_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_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.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.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.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_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.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.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_port.TestPatch.test_add_physical_network +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network ... 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.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_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_volume_connector.TestListVolumeConnectors.test_one +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one ... 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.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_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_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.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.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_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_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_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_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.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 +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-490745e0-e639-4abd-bafd-0c097bd45d9a +Openstack-Request-Id: req-e6f0d469-345e-4d29-998a-2125937d88bf X-Openstack-Ironic-Api-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'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "5d472a3d-17df-4c63-8d69-d0953a4e8997", "created_at": "2025-02-07T17:33:06.419374+00:00", "updated_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/5d472a3d-17df-4c63-8d69-d0953a4e8997", "rel": "self"}, {"href": "http://localhost/nodes/5d472a3d-17df-4c63-8d69-d0953a4e8997", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5d472a3d-17df-4c63-8d69-d0953a4e8997/ports", "rel": "self"}, {"href": "http://localhost/nodes/5d472a3d-17df-4c63-8d69-d0953a4e8997/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/080b2999-257c-4471-8aae-faa8731902e8 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-43bedbb4-41d5-4ad4-a8b8-b950944008cc +Openstack-Request-Id: req-9116f387-672e-44a0-8873-20034fbac016 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-06T10:56:46.431654+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 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "080b2999-257c-4471-8aae-faa8731902e8", "created_at": "2025-02-07T17:33:06.475855+00:00", "updated_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/080b2999-257c-4471-8aae-faa8731902e8", "rel": "self"}, {"href": "http://localhost/nodes/080b2999-257c-4471-8aae-faa8731902e8", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/080b2999-257c-4471-8aae-faa8731902e8/ports", "rel": "self"}, {"href": "http://localhost/nodes/080b2999-257c-4471-8aae-faa8731902e8/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/443e0443-ab44-49f3-8ba7-4908e4420b85 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8e3400b5-a509-422c-be63-bde9df6b6560 +Openstack-Request-Id: req-e0f20a7b-5574-4d4a-9dcf-bdcd1a202285 X-Openstack-Ironic-Api-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'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "443e0443-ab44-49f3-8ba7-4908e4420b85", "created_at": "2025-02-07T17:33:06.547792+00:00", "updated_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/443e0443-ab44-49f3-8ba7-4908e4420b85", "rel": "self"}, {"href": "http://localhost/nodes/443e0443-ab44-49f3-8ba7-4908e4420b85", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/443e0443-ab44-49f3-8ba7-4908e4420b85/ports", "rel": "self"}, {"href": "http://localhost/nodes/443e0443-ab44-49f3-8ba7-4908e4420b85/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/c964834a-da39-4eea-a581-6b1a0da340cd [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ba7e7d28-8fb9-44ff-8bc0-169faaae85bc +Openstack-Request-Id: req-603efc52-7071-4ee2-92c2-7eb5aa80b1fe X-Openstack-Ironic-Api-Maximum-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'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "c964834a-da39-4eea-a581-6b1a0da340cd", "created_at": "2025-02-07T17:33:06.599191+00:00", "updated_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/c964834a-da39-4eea-a581-6b1a0da340cd", "rel": "self"}, {"href": "http://localhost/nodes/c964834a-da39-4eea-a581-6b1a0da340cd", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c964834a-da39-4eea-a581-6b1a0da340cd/ports", "rel": "self"}, {"href": "http://localhost/nodes/c964834a-da39-4eea-a581-6b1a0da340cd/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/aeede7c4-861e-4b42-8efa-d17c439292c0 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4a78fd98-3df0-4af6-8fdc-f36ea65f5ef0 +Openstack-Request-Id: req-e6708666-831e-4f85-90b0-e23c4d3494cf 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-06T10:56:46.631486+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"} -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_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.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_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.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.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_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault ... 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 -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "aeede7c4-861e-4b42-8efa-d17c439292c0", "created_at": "2025-02-07T17:33:06.659503+00:00", "updated_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/aeede7c4-861e-4b42-8efa-d17c439292c0", "rel": "self"}, {"href": "http://localhost/nodes/aeede7c4-861e-4b42-8efa-d17c439292c0", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/aeede7c4-861e-4b42-8efa-d17c439292c0/ports", "rel": "self"}, {"href": "http://localhost/nodes/aeede7c4-861e-4b42-8efa-d17c439292c0/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/c3b4672b-9950-4d62-9e08-3257aa6f6981 [{'path': '/instance_uuid', 'op': 'remove'}] +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.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.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 +GOT:{'history': [{'uuid': '6ab1acae-4854-42e6-b9ac-e12f4dc6be99', 'created_at': '2025-02-07T17:33:04.916422+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/6ab1acae-4854-42e6-b9ac-e12f4dc6be99', 'rel': 'self'}]}, {'uuid': '4addb7bf-2451-4886-b339-139cedd553b5', 'created_at': '2025-02-07T17:33:04.918194+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/4addb7bf-2451-4886-b339-139cedd553b5', 'rel': 'self'}]}, {'uuid': 'ccc98549-836b-4df6-83af-2a2d74725fd1', 'created_at': '2025-02-07T17:33:04.919534+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/ccc98549-836b-4df6-83af-2a2d74725fd1', 'rel': 'self'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} +GOT:{'history': [{'uuid': '328e3b27-6825-4cf1-a6b0-0d2c5fc16e5f', 'created_at': '2025-02-07T17:33:05.031868+00:00', 'severity': None, 'event': 'meow', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/328e3b27-6825-4cf1-a6b0-0d2c5fc16e5f', 'rel': 'self'}]}, {'uuid': '43901ab2-7282-4b28-8b85-9a4c3567a2d3', 'created_at': '2025-02-07T17:33:05.033319+00:00', 'severity': None, 'event': 'purr', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/43901ab2-7282-4b28-8b85-9a4c3567a2d3', 'rel': 'self'}]}, {'uuid': 'e2048bb3-8dec-413b-ad63-e8a65979ff0a', 'created_at': '2025-02-07T17:33:05.034626+00:00', 'severity': None, 'event': 'grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/e2048bb3-8dec-413b-ad63-e8a65979ff0a', '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': '37eb5df8-9464-4302-b192-76ddc238ad47', 'created_at': '2025-02-07T17:33:05.328774+00:00', 'severity': None, 'event': 'meow', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/37eb5df8-9464-4302-b192-76ddc238ad47', 'rel': 'self'}]}], 'next': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=None&fields=uuid,created_at,severity,event&limit=1&marker=37eb5df8-9464-4302-b192-76ddc238ad47'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=37eb5df8-9464-4302-b192-76ddc238ad47 {} +GOT:{'history': [{'uuid': 'd80bbfbe-d57b-4226-b2d9-749f7bf6567b', 'created_at': '2025-02-07T17:33:05.330381+00:00', 'severity': None, 'event': 'purr', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/d80bbfbe-d57b-4226-b2d9-749f7bf6567b', 'rel': 'self'}]}], 'next': "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree1',created_at=2025-02-07T17:33:05Z,event='meow',event_type=None,id=1,node_id=1,severity=None,updated_at=None,user='peaches',uuid=37eb5df8-9464-4302-b192-76ddc238ad47)&fields=uuid,created_at,severity,event&limit=1&marker=d80bbfbe-d57b-4226-b2d9-749f7bf6567b"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=d80bbfbe-d57b-4226-b2d9-749f7bf6567b {} +GOT:{'history': [{'uuid': '922d44f0-e31f-4a32-a905-a49c7f8840aa', 'created_at': '2025-02-07T17:33:05.331756+00:00', 'severity': None, 'event': 'grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/922d44f0-e31f-4a32-a905-a49c7f8840aa', 'rel': 'self'}]}], 'next': "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree2',created_at=2025-02-07T17:33:05Z,event='purr',event_type=None,id=2,node_id=1,severity=None,updated_at=None,user='sage',uuid=d80bbfbe-d57b-4226-b2d9-749f7bf6567b)&fields=uuid,created_at,severity,event&limit=1&marker=922d44f0-e31f-4a32-a905-a49c7f8840aa"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/32cae18c-de6e-4543-8935-43b5ca53ffe9 {} +GOT:{'uuid': '32cae18c-de6e-4543-8935-43b5ca53ffe9', 'created_at': '2025-02-07T17:33:05.535116+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/32cae18c-de6e-4543-8935-43b5ca53ffe9', '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-84399982-ca6d-4d4a-bee3-60207b00a7ee +Openstack-Request-Id: req-577f6132-c877-43b3-bf2a-78c6680d7043 X-Openstack-Ironic-Api-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/581f44f1-74dd-4bb7-bf05-9931d3da28a7 [{'path': '/steps/2', 'op': 'add', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}] +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\": \"\"}"} +DELETE: /v1/portgroups/52:54:00:cf:2d:31 GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-56565b22-d643-44c7-b421-bbe7ebf90987 +{"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-eac85554-d5d7-470e-ad86-388c0ef113d1 X-Openstack-Ironic-Api-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/c4046800-7671-4fcb-9430-2cef2a5d5a64 [{'path': '/foo', 'op': 'remove'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-2008cb9d-510a-4f37-a1f8-4f75a4734418 + +DELETE: /v1/portgroups/pg.1 +GOT:Response: 204 No Content +Openstack-Request-Id: req-ac0f2d8e-e0e3-4e47-b1a9-68e8525f1fc5 X-Openstack-Ironic-Api-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/9daaa4e8-13a6-46b3-99a5-156a5caa300b [{'path': '/steps/1', 'op': 'remove'}] -GOT:Response: 200 OK + +DELETE: /v1/portgroups/blah +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-acd62cbd-e2cb-498b-9a80-f6c48bbb3fe7 +Openstack-Request-Id: req-11ba9aac-e84d-49bd-b4c8-62a164f2464e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "9daaa4e8-13a6-46b3-99a5-156a5caa300b", "created_at": "2024-01-06T10:56:45.493163+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/9daaa4e8-13a6-46b3-99a5-156a5caa300b", "rel": "self"}, {"href": "http://localhost/deploy_templates/9daaa4e8-13a6-46b3-99a5-156a5caa300b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 10}]} -PATCH: /v1/deploy_templates/fb1284e8-ed14-4c0d-bbd5-8a5969e99f2e [{'path': '/name', 'op': 'remove'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-a6962c1a-fadb-48f4-b15d-d00dd6c4e966 +{"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-7bbbe93c-9235-4a8f-9a28-f7bb6e045d7a X-Openstack-Ironic-Api-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/3c5679f2-2343-4925-9033-dc0ae418d106 [{'path': '/non-existent', 'op': 'remove'}] -GOT:Response: 400 Bad Request + +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1808c9b1-ef11-4820-9ee7-3af1355a4690 +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +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_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.TestListNodes.test_detail +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail ... 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_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_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_volume_connector.TestListVolumeConnectors.test_sort_key +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key ... 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 +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-94a1096d-68c2-4880-9515-c66611769d41 X-Openstack-Ironic-Api-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/99e12cab-9135-4d16-95f4-f4bab5ec46b7 [{'path': '/steps/1', 'op': 'remove'}] +X-Openstack-Ironic-Api-Version: 1.13 + +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-a2044c7e-baf8-4fee-8340-68d2d0fc55ea +Openstack-Request-Id: req-52507419-679c-46fe-9ce4-f826dee5445d X-Openstack-Ironic-Api-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/553a7849-c67a-4873-a2e8-30c1ba8e611d [{'path': '/steps/0/non-existent', 'op': 'remove'}] +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-3426ecd0-b811-4973-bb06-a189b1e4a461 +Openstack-Request-Id: req-df6fa40e-2b58-43e9-a8fa-a41318b9c09c X-Openstack-Ironic-Api-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/dc44ffcb-7f3f-40d3-ab47-66e6e4ba1a60 [{'path': '/steps/0', 'op': 'remove'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-05c4dc30-5533-4c8b-b3ff-87fea6e05943 +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-798dceb7-65bd-41a8-93d7-48397b9f2caf X-Openstack-Ironic-Api-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/bfb7b9db-e5e7-4624-badd-8643a5dd25f8 [{'path': '/steps', 'op': 'remove'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.17 + +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-64667fa5-0356-4354-987d-850084b4c87e +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': 'adopt'} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-c1d90fa8-eb30-400d-9c9e-b0b7d61aea6b +Openstack-Request-Id: req-3283bc65-7117-4382-acce-06f191e92dd6 X-Openstack-Ironic-Api-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/6064ecad-264c-44e2-958b-8d172138bc9b [{'path': '/uuid', 'op': 'remove'}] +X-Openstack-Ironic-Api-Version: 1.16 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +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-11761a98-0a7d-4d00-93b5-6efc90977e48 +Openstack-Request-Id: req-9bc3a151-08b1-42bd-8eb6-ae8ad5fbdd9c X-Openstack-Ironic-Api-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/a0e4ad1b-43db-4c53-8ec9-defea3c203c8 [{'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}]}] +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-176ce324-774e-4d69-ba59-4e0e1da50e23 +Openstack-Request-Id: req-30b14b45-7bc0-4c47-a0db-cca09e60dd94 X-Openstack-Ironic-Api-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/e7cc9e74-61b8-4a3a-a2e2-e172386af55d [{'path': '/steps', 'op': 'replace', 'value': []}] +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"rebuild\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-32b24c6a-2c9f-4d9f-8694-6f28a13e4ee8 +Openstack-Request-Id: req-654e1b49-9757-4618-89ea-921cc45dd0a3 X-Openstack-Ironic-Api-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/2aa97197-06b9-4aa5-aed3-f69ead5794da [{'path': '/name', 'op': 'replace', 'value': None}] +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"} +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-c8312d8c-6a44-4580-9a53-ba3e99ea27ee +Openstack-Request-Id: req-9da9eeb0-628f-4721-b6cc-b10d4b0a1afa X-Openstack-Ironic-Api-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}"} -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.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.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.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_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.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.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.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.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.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.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 -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T10:56:46.307749+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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild'} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-3faa5664-18a6-4492-87fc-371e39447b4e +Openstack-Request-Id: req-c9ba9113-d90d-408a-9703-89c21b360c79 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-06T10:56:46.399768+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-06T10:56:46.399768+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 +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"rebuild\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-01cada2b-a09b-438b-8770-70425b528720 +Openstack-Request-Id: req-5a76900a-b7c3-41fc-a7a6-7837e76d0534 X-Openstack-Ironic-Api-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/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.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/ports/79884c99-fda2-47ae-ad8a-bbcef1ce5d15 -Openstack-Request-Id: req-1322a1e2-522a-4748-9836-25f39f534327 +Openstack-Request-Id: req-fc0acd64-dc03-4a55-9819-3bf42b093eb6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "79884c99-fda2-47ae-ad8a-bbcef1ce5d15", "created_at": "2024-01-06T10:56:46.576733+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/79884c99-fda2-47ae-ad8a-bbcef1ce5d15", "rel": "self"}, {"href": "http://localhost/ports/79884c99-fda2-47ae-ad8a-bbcef1ce5d15", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} -GET: /v1/ports/79884c99-fda2-47ae-ad8a-bbcef1ce5d15 {} -GOT:{'uuid': '79884c99-fda2-47ae-ad8a-bbcef1ce5d15', 'created_at': '2024-01-06T10:56:46.576733+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/79884c99-fda2-47ae-ad8a-bbcef1ce5d15', 'rel': 'self'}, {'href': 'http://localhost/ports/79884c99-fda2-47ae-ad8a-bbcef1ce5d15', '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.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-0ebff998-b8fc-4b1f-94c7-b47ee6e37dfa +Openstack-Request-Id: req-66da617d-24b0-4cda-ac1b-bed193fbf8cb 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'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-69f657e9-002d-476a-b752-ac0522b83fa0 +Openstack-Request-Id: req-bf5a0a53-924c-4157-a717-e395950ce2ba 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'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'bios'} +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_ramdisk.TestLookup.test_no_restrict_lookup +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup ... ok GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-f6cc253d-77d0-4dd7-be2b-9b99a00e13e3 +Openstack-Request-Id: req-c286d6d7-1271-4d40-8a1d-effc3826e0ca X-Openstack-Ironic-Api-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}"} -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_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_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_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_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.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 -GOT:Response: 201 Created +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 -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-90b73868-58b4-460e-afc8-b87effeaaf38 +Openstack-Request-Id: req-bfae5201-7169-4e79-ac74-cf27ca5c724f 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-06T10:56:46.410084+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-06T10:56:46.410084+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} +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-5e4410d0-6218-4cf8-bc1f-0858a2d51328 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.37 + +GET: /v1/volume/targets/?limit=3 {} +GOT:{'targets': [{'uuid': '5694b3da-c5c1-4977-a6e1-56a4def6e79a', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/5694b3da-c5c1-4977-a6e1-56a4def6e79a', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/5694b3da-c5c1-4977-a6e1-56a4def6e79a', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '9ca30bfd-3b72-431b-ad3d-ad213d624ef2', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/9ca30bfd-3b72-431b-ad3d-ad213d624ef2', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/9ca30bfd-3b72-431b-ad3d-ad213d624ef2', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '3c56ed2b-e606-4d85-8d2c-8da9f3efaa2a', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/3c56ed2b-e606-4d85-8d2c-8da9f3efaa2a', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/3c56ed2b-e606-4d85-8d2c-8da9f3efaa2a', '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=3c56ed2b-e606-4d85-8d2c-8da9f3efaa2a'} +GET: /v1/volume/targets?fields=uuid,extra {} +GOT:{'targets': [{'uuid': '3b75e133-6eab-46ad-9eef-99f98131cd81', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/3b75e133-6eab-46ad-9eef-99f98131cd81', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/3b75e133-6eab-46ad-9eef-99f98131cd81', 'rel': 'bookmark'}]}, {'uuid': 'def2d2d9-f0fb-4cd5-8ce5-b6a7a952303a', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/def2d2d9-f0fb-4cd5-8ce5-b6a7a952303a', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/def2d2d9-f0fb-4cd5-8ce5-b6a7a952303a', 'rel': 'bookmark'}]}, {'uuid': '150ecb16-9a07-4a9c-b525-2f15f13986f9', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/150ecb16-9a07-4a9c-b525-2f15f13986f9', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/150ecb16-9a07-4a9c-b525-2f15f13986f9', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=150ecb16-9a07-4a9c-b525-2f15f13986f9'} +GET: /v1/volume/targets {} +GOT:{'targets': [{'uuid': '39cf8cdf-9339-4759-9347-ed508d10e56e', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/39cf8cdf-9339-4759-9347-ed508d10e56e', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/39cf8cdf-9339-4759-9347-ed508d10e56e', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '468d90ce-4dcf-4130-821c-93179aac58a1', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/468d90ce-4dcf-4130-821c-93179aac58a1', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/468d90ce-4dcf-4130-821c-93179aac58a1', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '6ee2371a-15c6-4832-a825-ffd2d4c26ca6', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/6ee2371a-15c6-4832-a825-ffd2d4c26ca6', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/6ee2371a-15c6-4832-a825-ffd2d4c26ca6', '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=6ee2371a-15c6-4832-a825-ffd2d4c26ca6'} +GET: /v1/volume/targets?detail=True&limit=3 {} +GOT:{'targets': [{'uuid': 'db764d15-fc34-4d2e-b92a-7cc1134f56bf', 'created_at': '2025-02-07T17:33:06.837592+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/db764d15-fc34-4d2e-b92a-7cc1134f56bf', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/db764d15-fc34-4d2e-b92a-7cc1134f56bf', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '454f9fce-6cbd-45d3-a6a7-8c176492a7eb', 'created_at': '2025-02-07T17:33:06.839065+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/454f9fce-6cbd-45d3-a6a7-8c176492a7eb', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/454f9fce-6cbd-45d3-a6a7-8c176492a7eb', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'a3882c22-f31e-4b17-a760-cba79db104d8', 'created_at': '2025-02-07T17:33:06.840441+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/a3882c22-f31e-4b17-a760-cba79db104d8', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/a3882c22-f31e-4b17-a760-cba79db104d8', '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=a3882c22-f31e-4b17-a760-cba79db104d8'} +GET: /v1/volume/targets?detail=True {} +GOT:{'targets': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T17:33:06.980512+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 {} +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.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 GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1e57d633-0378-4a80-ae40-85772321c3f7 +Openstack-Request-Id: req-e81dca99-6bac-42b6-8b42-f1b26c629679 X-Openstack-Ironic-Api-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'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'interface' is a required property\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '0fea4446-1a62-4287-9ced-86b9929b61c7', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-8ff89938-3e0e-4868-b989-c974dc2e4a87 +Openstack-Request-Id: req-6ace9d66-39e2-422d-ac43-5645a15fe8bd X-Openstack-Ironic-Api-Maximum-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'} -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'priority' is a required property\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '39198ade-f76f-45a3-8995-2c235711177e', 'steps': [{'interface': 'raid', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-973ad02e-018e-4a3c-a670-88f63ce4c04d +Openstack-Request-Id: req-cb17998a-f4ff-44cf-a33e-f3f2fef57470 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'} +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': 'acb32bc7-5aa7-44e3-a99a-5b834d0bdc5f', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-5d2b4510-80e5-4564-95fd-bee8adff3abf +Location: http://localhost/v1/deploy_templates/acb32bc7-5aa7-44e3-a99a-5b834d0bdc5f +Openstack-Request-Id: req-09722713-f11f-47e2-a926-bb3df377302b 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-06T10:56:46.689454+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': '2024-01-06T10:56:46.689454+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'} -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_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_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.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_port.TestPatch.test_add_node_id -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id ... 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.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_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 -GOT:{'allocations': [{'uuid': '75d02b3a-261a-47a5-be8a-3350d68134fc', 'created_at': '2024-01-06T10:56:46.532743+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/75d02b3a-261a-47a5-be8a-3350d68134fc', 'rel': 'self'}, {'href': 'http://localhost/allocations/75d02b3a-261a-47a5-be8a-3350d68134fc', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'bd6dd1d6-310d-423c-a0ab-35785ea36159', 'created_at': '2024-01-06T10:56:46.534557+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/bd6dd1d6-310d-423c-a0ab-35785ea36159', 'rel': 'self'}, {'href': 'http://localhost/allocations/bd6dd1d6-310d-423c-a0ab-35785ea36159', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '8646b4d3-20bf-48ea-b059-cb9bd2889083', 'created_at': '2024-01-06T10:56:46.536240+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/8646b4d3-20bf-48ea-b059-cb9bd2889083', 'rel': 'self'}, {'href': 'http://localhost/allocations/8646b4d3-20bf-48ea-b059-cb9bd2889083', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '032c95c8-db19-44f4-9c3f-fc47b64300c3', 'created_at': '2024-01-06T10:56:46.538330+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/032c95c8-db19-44f4-9c3f-fc47b64300c3', 'rel': 'self'}, {'href': 'http://localhost/allocations/032c95c8-db19-44f4-9c3f-fc47b64300c3', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'd52447e3-ac75-4bf3-b691-87c957ded226', 'created_at': '2024-01-06T10:56:46.539897+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/d52447e3-ac75-4bf3-b691-87c957ded226', 'rel': 'self'}, {'href': 'http://localhost/allocations/d52447e3-ac75-4bf3-b691-87c957ded226', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/allocations {} -GOT:{'allocations': [{'uuid': '782ad9d4-231e-4f0e-9890-957bca5edf82', 'created_at': '2024-01-06T10:56:46.610628+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/782ad9d4-231e-4f0e-9890-957bca5edf82', 'rel': 'self'}, {'href': 'http://localhost/allocations/782ad9d4-231e-4f0e-9890-957bca5edf82', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/allocations?sort_key=uuid {} -GOT:{'allocations': [{'uuid': '4250fa7c-26bc-478c-970c-623f5447a1c3', 'created_at': '2024-01-06T10:56:46.676014+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/4250fa7c-26bc-478c-970c-623f5447a1c3', 'rel': 'self'}, {'href': 'http://localhost/allocations/4250fa7c-26bc-478c-970c-623f5447a1c3', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '50101833-f7a6-4034-8d6c-243e62090a18', 'created_at': '2024-01-06T10:56:46.672754+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/50101833-f7a6-4034-8d6c-243e62090a18', 'rel': 'self'}, {'href': 'http://localhost/allocations/50101833-f7a6-4034-8d6c-243e62090a18', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'c4df242c-39ba-423b-8c3e-c7a5ef97d3cb', 'created_at': '2024-01-06T10:56:46.674509+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/c4df242c-39ba-423b-8c3e-c7a5ef97d3cb', 'rel': 'self'}, {'href': 'http://localhost/allocations/c4df242c-39ba-423b-8c3e-c7a5ef97d3cb', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/allocations?sort_key=name {} -GOT:{'allocations': [{'uuid': 'b5f01080-ee6b-416f-b317-0d8cd6911a24', 'created_at': '2024-01-06T10:56:46.758154+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/b5f01080-ee6b-416f-b317-0d8cd6911a24', 'rel': 'self'}, {'href': 'http://localhost/allocations/b5f01080-ee6b-416f-b317-0d8cd6911a24', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '2f8af6e5-02bf-451c-a292-86a305ad7b8a', 'created_at': '2024-01-06T10:56:46.756433+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/2f8af6e5-02bf-451c-a292-86a305ad7b8a', 'rel': 'self'}, {'href': 'http://localhost/allocations/2f8af6e5-02bf-451c-a292-86a305ad7b8a', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '4f912fa4-ff8e-49b3-8616-7c8b94a2e46c', 'created_at': '2024-01-06T10:56:46.754579+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/4f912fa4-ff8e-49b3-8616-7c8b94a2e46c', 'rel': 'self'}, {'href': 'http://localhost/allocations/4f912fa4-ff8e-49b3-8616-7c8b94a2e46c', 'rel': 'bookmark'}], 'node_uuid': None}]} -GET: /v1/allocations?sort_key=foo {} -GOT:Response: 400 Bad Request +{"uuid": "acb32bc7-5aa7-44e3-a99a-5b834d0bdc5f", "created_at": "2025-02-07T17:33:06.297656+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/acb32bc7-5aa7-44e3-a99a-5b834d0bdc5f", "rel": "self"}, {"href": "http://localhost/deploy_templates/acb32bc7-5aa7-44e3-a99a-5b834d0bdc5f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '1d7812dd-2ec1-427e-8041-c146b365440b', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': '42'}], 'extra': {}} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-a46cd2a2-ca3a-450d-9add-0b5984a402d4 +Location: http://localhost/v1/deploy_templates/1d7812dd-2ec1-427e-8041-c146b365440b +Openstack-Request-Id: req-1e630853-1e61-44eb-b79a-411939864a38 X-Openstack-Ironic-Api-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 {} +{"uuid": "1d7812dd-2ec1-427e-8041-c146b365440b", "created_at": "2025-02-07T17:33:06.461287+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/1d7812dd-2ec1-427e-8041-c146b365440b", "rel": "self"}, {"href": "http://localhost/deploy_templates/1d7812dd-2ec1-427e-8041-c146b365440b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": "42"}]} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'a7f28bd8-324a-40f8-ad14-5c741df8261b', '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-f7103813-41eb-4375-85f2-c5d71a82c0bd +Openstack-Request-Id: req-4fcb12b2-2974-4d3e-bb58-0a6cd3b5a1d3 X-Openstack-Ironic-Api-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 {} -GOT:Response: 400 Bad Request +{"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': '72df2246-4b7e-43bb-bcce-475f3c0d2005', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/72df2246-4b7e-43bb-bcce-475f3c0d2005', 'rel': 'self'}, {'href': 'http://localhost/portgroups/72df2246-4b7e-43bb-bcce-475f3c0d2005', 'rel': 'bookmark'}]}, {'uuid': 'da1449cf-9f64-4574-bdea-8b7620b02833', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/da1449cf-9f64-4574-bdea-8b7620b02833', 'rel': 'self'}, {'href': 'http://localhost/portgroups/da1449cf-9f64-4574-bdea-8b7620b02833', 'rel': 'bookmark'}]}, {'uuid': '0210b91a-f0b7-4890-bef2-3acb38976233', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/0210b91a-f0b7-4890-bef2-3acb38976233', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0210b91a-f0b7-4890-bef2-3acb38976233', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=0210b91a-f0b7-4890-bef2-3acb38976233'} +GET: /v1/portgroups?fields=address,uuid {} +GOT:{'portgroups': [{'uuid': '1193aeca-5f82-4fdc-85ab-64b16d239161', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/portgroups/1193aeca-5f82-4fdc-85ab-64b16d239161', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1193aeca-5f82-4fdc-85ab-64b16d239161', 'rel': 'bookmark'}]}, {'uuid': 'a29fa19c-f40e-4e62-be56-4e6d3d10b9c0', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/portgroups/a29fa19c-f40e-4e62-be56-4e6d3d10b9c0', 'rel': 'self'}, {'href': 'http://localhost/portgroups/a29fa19c-f40e-4e62-be56-4e6d3d10b9c0', 'rel': 'bookmark'}]}, {'uuid': 'ce792914-d8a9-4856-bf75-930cb3187216', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/portgroups/ce792914-d8a9-4856-bf75-930cb3187216', 'rel': 'self'}, {'href': 'http://localhost/portgroups/ce792914-d8a9-4856-bf75-930cb3187216', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=ce792914-d8a9-4856-bf75-930cb3187216'} +GET: /v1/portgroups {} +GOT:{'portgroups': [{'uuid': '402391dd-e03c-4b73-908f-a47bb6fa17d4', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/402391dd-e03c-4b73-908f-a47bb6fa17d4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/402391dd-e03c-4b73-908f-a47bb6fa17d4', 'rel': 'bookmark'}]}, {'uuid': 'd8a4f150-3356-4f27-aa1c-9737891f261b', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/d8a4f150-3356-4f27-aa1c-9737891f261b', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d8a4f150-3356-4f27-aa1c-9737891f261b', 'rel': 'bookmark'}]}, {'uuid': 'd2796e2c-35a1-47a3-a3d7-4456e6f00eb3', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/d2796e2c-35a1-47a3-a3d7-4456e6f00eb3', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d2796e2c-35a1-47a3-a3d7-4456e6f00eb3', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=d2796e2c-35a1-47a3-a3d7-4456e6f00eb3'} +GET: /v1/portgroups/detail {} +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_portgroup.TestListPortgroups.test_detail +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail ... 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_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_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.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_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_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_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_node.TestListNodes.test_detail_forbidden +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_forbidden ... ok +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-5f5b423e-8c0a-4fe7-9c1e-ce89895828e3 +Openstack-Request-Id: req-ed6215c9-9281-44e4-ae6a-39cde5a6d5b7 X-Openstack-Ironic-Api-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 {} -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_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_chassis.TestPatch.test_add_root -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root ... 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.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_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.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.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_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback ... 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.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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone ... ok -Error while running foo: bar. -PATCH: /v1/deploy_templates/3ee60e6e-cc25-4604-91b5-5d34c9e9a6c2 [{'path': '/name', 'op': 'replace', 'value': 'not-a-trait'}] -GOT:Response: 400 Bad Request +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:06.504421+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-b5c3c8fb-f753-440b-9473-c1529167dbc6 +Openstack-Request-Id: req-57cc78a1-d650-434b-988b-4432a529f021 X-Openstack-Ironic-Api-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/5dd30538-9d3f-4c90-8f31-24a81660cd62 [{'path': '/name', 'op': 'replace', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}] -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-1e0d597b-627d-43fb-b60b-078a4f03c4e5 +Openstack-Request-Id: req-57cc78a1-d650-434b-988b-4432a529f021 X-Openstack-Ironic-Api-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/ebcbfdeb-f552-4c51-947c-ead2d89629ae [{'path': '/steps/0', 'op': 'replace', 'value': {'interface': 'foo', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}] -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-a35ea30c-d3f6-4e9d-9df7-4191a9daed56 +Openstack-Request-Id: req-f8d1f40b-04be-4771-bb23-c26f841102c7 X-Openstack-Ironic-Api-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/ff816f01-fda8-473d-a2df-f7f32e12aa39 [{'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'}] +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:07.220613+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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 GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-29558b39-04a5-423d-9fd4-31cde66b7f78 +Openstack-Request-Id: req-fc285aab-d719-470b-9cad-121835fe1b45 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "ff816f01-fda8-473d-a2df-f7f32e12aa39", "created_at": "2024-01-06T10:56:46.750556+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/ff816f01-fda8-473d-a2df-f7f32e12aa39", "rel": "self"}, {"href": "http://localhost/deploy_templates/ff816f01-fda8-473d-a2df-f7f32e12aa39", "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/4fa07827-6dca-4d7f-b614-25a53b078e5c [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.38 +{"uuid": "c3b4672b-9950-4d62-9e08-3257aa6f6981", "created_at": "2025-02-07T17:33:06.845189+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/c3b4672b-9950-4d62-9e08-3257aa6f6981", "rel": "self"}, {"href": "http://localhost/nodes/c3b4672b-9950-4d62-9e08-3257aa6f6981", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c3b4672b-9950-4d62-9e08-3257aa6f6981/ports", "rel": "self"}, {"href": "http://localhost/nodes/c3b4672b-9950-4d62-9e08-3257aa6f6981/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c3b4672b-9950-4d62-9e08-3257aa6f6981/states", "rel": "self"}, {"href": "http://localhost/nodes/c3b4672b-9950-4d62-9e08-3257aa6f6981/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c3b4672b-9950-4d62-9e08-3257aa6f6981/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c3b4672b-9950-4d62-9e08-3257aa6f6981/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c3b4672b-9950-4d62-9e08-3257aa6f6981/volume", "rel": "self"}, {"href": "http://localhost/nodes/c3b4672b-9950-4d62-9e08-3257aa6f6981/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/3dd1fc79-0d3e-4cec-99ea-bcebea250e45 [{'path': '/instance_uuid', 'op': 'remove'}] GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-9df5163b-9c87-458c-9bea-f38c3eb00295 +Openstack-Request-Id: req-d1dda51a-7b73-4394-b4cf-cbd77fa92cce X-Openstack-Ironic-Api-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 4fa07827-6dca-4d7f-b614-25a53b078e5c already exists.\", \"debuginfo\": null}"} -PATCH: /v1/deploy_templates/17feee38-b365-44da-bb6b-7ce9599feca0 [{'path': '/steps/1', 'op': 'replace', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.39 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node \\\"3dd1fc79-0d3e-4cec-99ea-bcebea250e45\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} +PATCH: /v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7 [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c134e158-aba1-4377-a4c7-f76ffc19e078 +Openstack-Request-Id: req-092d2649-4e79-4dcf-aeb2-3d457e9186fd X-Openstack-Ironic-Api-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/896427df-a2f1-4a38-ab9d-c36b3572f143 [{'path': '/steps/0/interface', 'op': 'replace', 'value': 'foo'}] -GOT:Response: 400 Bad Request +{"uuid": "fe6779f7-81cb-42cc-96c4-3b80656e33a7", "created_at": "2025-02-07T17:33:07.288583+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/fe6779f7-81cb-42cc-96c4-3b80656e33a7", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/ports", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/states", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/volume", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7 [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] +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.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.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_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_volume_connector.TestPatch.test_add_multi +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_multi ... 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.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_ramdisk.TestLookup.test_nothing_provided +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_nothing_provided ... ok +GOT:{'nodes': [{'uuid': '5af37242-ad80-4701-bac1-6f1ce3ada768', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/5af37242-ad80-4701-bac1-6f1ce3ada768', 'rel': 'self'}, {'href': 'http://localhost/nodes/5af37242-ad80-4701-bac1-6f1ce3ada768', 'rel': 'bookmark'}]}, {'uuid': '19e55ba0-d4de-4b1e-9b56-452ed7e69efb', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/19e55ba0-d4de-4b1e-9b56-452ed7e69efb', 'rel': 'self'}, {'href': 'http://localhost/nodes/19e55ba0-d4de-4b1e-9b56-452ed7e69efb', 'rel': 'bookmark'}]}, {'uuid': 'fd6e576a-160b-4bf6-9a2e-b05fc274394b', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/fd6e576a-160b-4bf6-9a2e-b05fc274394b', 'rel': 'self'}, {'href': 'http://localhost/nodes/fd6e576a-160b-4bf6-9a2e-b05fc274394b', '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=fd6e576a-160b-4bf6-9a2e-b05fc274394b'} +GET: /v1/nodes?fields=driver_info,uuid {} +GOT:{'nodes': [{'uuid': '9b7ab268-72b2-4072-b8f8-10d44e39c411', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/9b7ab268-72b2-4072-b8f8-10d44e39c411', 'rel': 'self'}, {'href': 'http://localhost/nodes/9b7ab268-72b2-4072-b8f8-10d44e39c411', 'rel': 'bookmark'}]}, {'uuid': '49b378df-f672-42c9-9d11-6dbdd0fd8b42', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/49b378df-f672-42c9-9d11-6dbdd0fd8b42', 'rel': 'self'}, {'href': 'http://localhost/nodes/49b378df-f672-42c9-9d11-6dbdd0fd8b42', 'rel': 'bookmark'}]}, {'uuid': 'bc1467a6-7083-459e-bdaf-64a5fe8ae28b', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/bc1467a6-7083-459e-bdaf-64a5fe8ae28b', 'rel': 'self'}, {'href': 'http://localhost/nodes/bc1467a6-7083-459e-bdaf-64a5fe8ae28b', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=driver_info,uuid&limit=3&marker=bc1467a6-7083-459e-bdaf-64a5fe8ae28b'} +GET: /v1/nodes {} +GOT:{'nodes': [{'uuid': '8d1cfd49-9bb6-4c71-96e5-15674356ea64', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/8d1cfd49-9bb6-4c71-96e5-15674356ea64', 'rel': 'self'}, {'href': 'http://localhost/nodes/8d1cfd49-9bb6-4c71-96e5-15674356ea64', 'rel': 'bookmark'}]}, {'uuid': '88cd03f1-e2e9-4c66-b00f-a168d62fe9e3', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/88cd03f1-e2e9-4c66-b00f-a168d62fe9e3', 'rel': 'self'}, {'href': 'http://localhost/nodes/88cd03f1-e2e9-4c66-b00f-a168d62fe9e3', 'rel': 'bookmark'}]}, {'uuid': 'ef732a24-1bf4-4111-ba95-74c4e0edd79a', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/ef732a24-1bf4-4111-ba95-74c4e0edd79a', 'rel': 'self'}, {'href': 'http://localhost/nodes/ef732a24-1bf4-4111-ba95-74c4e0edd79a', '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=ef732a24-1bf4-4111-ba95-74c4e0edd79a'} +GET: /v1/nodes?instance_uuid=b9cab186-b0be-406b-b07a-33ae77671e50 {} +GOT:{'nodes': [{'uuid': 'd204d378-b782-4145-b3a6-0eed4c260a7e', 'instance_uuid': 'b9cab186-b0be-406b-b07a-33ae77671e50', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/d204d378-b782-4145-b3a6-0eed4c260a7e', 'rel': 'self'}, {'href': 'http://localhost/nodes/d204d378-b782-4145-b3a6-0eed4c260a7e', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:06.936112+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 -Openstack-Request-Id: req-442ecc1f-ed44-4336-9764-78432630fdd1 +Openstack-Request-Id: req-3e1600a8-33f8-4732-97ac-ab7f27a66dd5 X-Openstack-Ironic-Api-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/d38c061a-bc81-46cc-b382-457a13bdea37 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] -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/nodes/detail {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-bf0ab6f3-13cb-41bd-bef4-e6ec294c8b7b +Openstack-Request-Id: req-fbd36567-0f5e-4caf-a6f2-a564d9ecf3d1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "d38c061a-bc81-46cc-b382-457a13bdea37", "created_at": "2024-01-06T10:56:46.985753+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d38c061a-bc81-46cc-b382-457a13bdea37", "rel": "self"}, {"href": "http://localhost/deploy_templates/d38c061a-bc81-46cc-b382-457a13bdea37", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -PATCH: /v1/deploy_templates/22a88a90-0678-4d24-be2c-ba474ed7389e [{'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'}] +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 {} +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_node.TestPut.test_boot_mode_invalid_request +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_invalid_request ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-fbb3ef4c-6c08-4fff-a414-eabd99e2b72d +Openstack-Request-Id: req-bd6f3321-64af-40d8-971a-7b017c2784b8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "38c55d28-1f48-4c9c-a884-9a343748af34", "created_at": "2024-01-06T10:56:47.087621+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/38c55d28-1f48-4c9c-a884-9a343748af34", "rel": "self"}, {"href": "http://localhost/deploy_templates/38c55d28-1f48-4c9c-a884-9a343748af34", "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'}] -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 +{"uuid": "fe6779f7-81cb-42cc-96c4-3b80656e33a7", "created_at": "2025-02-07T17:33:07.288583+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/fe6779f7-81cb-42cc-96c4-3b80656e33a7", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/ports", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/states", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/volume", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7 [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-96adc175-b384-4579-a423-566f51b7830f +Openstack-Request-Id: req-1216bc50-6b40-4c66-b63c-d84c62dfeb39 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-06T10:56:46.111100+00:00", "updated_at": "2024-01-06T10:56:46.122002+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'}] +{"uuid": "fe6779f7-81cb-42cc-96c4-3b80656e33a7", "created_at": "2025-02-07T17:33:07.288583+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/fe6779f7-81cb-42cc-96c4-3b80656e33a7", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/ports", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/states", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/volume", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7 [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] +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_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_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_portgroup.TestPatch.test_add_node_uuid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-104b3e20-b635-4ca8-836f-e98aeed9f7d0 +Openstack-Request-Id: req-ace9aedc-2304-4731-b4a9-39baddb00f67 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-06T10:56:46.111100+00:00", "updated_at": "2024-01-06T10:56:46.122002+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 +{"uuid": "fe6779f7-81cb-42cc-96c4-3b80656e33a7", "created_at": "2025-02-07T17:33:07.288583+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/fe6779f7-81cb-42cc-96c4-3b80656e33a7", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/ports", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/states", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/volume", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7 [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-91656973-e63f-4ad5-9e65-aa0b94b482a1 +Openstack-Request-Id: req-25974813-c737-422f-8a27-5e45fbe041ee X-Openstack-Ironic-Api-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 +{"uuid": "fe6779f7-81cb-42cc-96c4-3b80656e33a7", "created_at": "2025-02-07T17:33:07.288583+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/fe6779f7-81cb-42cc-96c4-3b80656e33a7", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/ports", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/states", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/volume", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7 [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] +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_ramdisk.TestLookup.test_old_api_version +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version ... 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_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_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.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-65985a17-5e44-4c95-9e78-881de5fee895 +Openstack-Request-Id: req-50b0c437-a8cc-424c-8a22-1fc524a22875 X-Openstack-Ironic-Api-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 +{"uuid": "fe6779f7-81cb-42cc-96c4-3b80656e33a7", "created_at": "2025-02-07T17:33:07.288583+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/fe6779f7-81cb-42cc-96c4-3b80656e33a7", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/ports", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/states", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/volume", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7 [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-02e306d2-51b3-4071-99b1-6443adea8c10 +Openstack-Request-Id: req-ab302494-734b-44ec-93a3-38c3923d77e3 X-Openstack-Ironic-Api-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 +{"uuid": "fe6779f7-81cb-42cc-96c4-3b80656e33a7", "created_at": "2025-02-07T17:33:07.288583+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/fe6779f7-81cb-42cc-96c4-3b80656e33a7", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/ports", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/states", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/volume", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7 [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] +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_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_portgroup.TestPatch.test_add_root +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root ... ok +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0486ca0a-dc9e-4294-aeae-9a85f68a46cc +Openstack-Request-Id: req-f8d1f40b-04be-4771-bb23-c26f841102c7 X-Openstack-Ironic-Api-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'}] +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:07.220613+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c88f95c0-dea4-46f2-b71f-e6bb1345200d -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-06T10:56:46.551655+00:00", "updated_at": "2024-01-06T10:56:46.555913+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-98c376a0-aaa8-4c06-8ab3-9130a8e147ff +Openstack-Request-Id: req-e2f6a259-cc0a-4f4b-a123-d3c6770a6af4 X-Openstack-Ironic-Api-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'}] +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:07.720104+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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.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.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_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_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_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_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_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.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.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_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_portgroup.TestPatch.test_add_root_non_existent +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-836cf721-fc90-4794-bf16-d96f63a16178 +Openstack-Request-Id: req-833f8e61-9323-4510-aaea-208f2d7a2208 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-06T10:56:46.698575+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.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:06.140311+00:00", "updated_at": "2025-02-07T17:33:06.163919+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-cecf46b0-0818-491b-87b1-c3a350775e9c +Openstack-Request-Id: req-35688f5c-aa92-4e08-a500-8b7337fb580e X-Openstack-Ironic-Api-Maximum-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}"} -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.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_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.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug ... 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 +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-604f57ee-1e0f-498d-bea7-5b21cea62d97 +Openstack-Request-Id: req-05d3c6ca-df03-4ae2-8d52-84c801e3cbd4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "3423afe0-7f27-4842-b21f-64831aaaacf9", "created_at": "2024-01-06T10:56:46.681296+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/3423afe0-7f27-4842-b21f-64831aaaacf9", "rel": "self"}, {"href": "http://localhost/nodes/3423afe0-7f27-4842-b21f-64831aaaacf9", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3423afe0-7f27-4842-b21f-64831aaaacf9/ports", "rel": "self"}, {"href": "http://localhost/nodes/3423afe0-7f27-4842-b21f-64831aaaacf9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3423afe0-7f27-4842-b21f-64831aaaacf9/states", "rel": "self"}, {"href": "http://localhost/nodes/3423afe0-7f27-4842-b21f-64831aaaacf9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3423afe0-7f27-4842-b21f-64831aaaacf9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3423afe0-7f27-4842-b21f-64831aaaacf9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3423afe0-7f27-4842-b21f-64831aaaacf9/volume", "rel": "self"}, {"href": "http://localhost/nodes/3423afe0-7f27-4842-b21f-64831aaaacf9/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/88e12ec2-8194-4840-854c-10d235f538aa [{'path': '/description', 'value': 'foo', 'op': 'replace'}, {'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:06.514597+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 Content-Type: application/json -Openstack-Request-Id: req-09a94619-f3f7-45e3-8055-7c54d26cfc67 +Openstack-Request-Id: req-0890f1c8-46f5-4e56-8c73-5580c1f913ee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "88e12ec2-8194-4840-854c-10d235f538aa", "created_at": "2024-01-06T10:56:46.823832+00:00", "updated_at": null, "automated_clean": null, "bios_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/88e12ec2-8194-4840-854c-10d235f538aa", "rel": "self"}, {"href": "http://localhost/nodes/88e12ec2-8194-4840-854c-10d235f538aa", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/88e12ec2-8194-4840-854c-10d235f538aa/ports", "rel": "self"}, {"href": "http://localhost/nodes/88e12ec2-8194-4840-854c-10d235f538aa/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/88e12ec2-8194-4840-854c-10d235f538aa/states", "rel": "self"}, {"href": "http://localhost/nodes/88e12ec2-8194-4840-854c-10d235f538aa/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/88e12ec2-8194-4840-854c-10d235f538aa/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/88e12ec2-8194-4840-854c-10d235f538aa/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/88e12ec2-8194-4840-854c-10d235f538aa/volume", "rel": "self"}, {"href": "http://localhost/nodes/88e12ec2-8194-4840-854c-10d235f538aa/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/c7a825db-14a4-42dd-9b44-d100355a0753 [{'path': '/description', 'value': 'foo', 'op': 'replace'}, {'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] -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.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_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.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.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.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_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.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.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.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.common.test_context.RequestContextTestCase.test_create_context -ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context ... 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.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 -/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.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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations ... ok -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.34 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:06.699008+00:00", "updated_at": "2025-02-07T17:33:06.718904+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-c71d8629-86e3-46ba-af5a-895ea5295334 +Openstack-Request-Id: req-5ed20a80-7f98-4a50-ab51-1b32ba82ff12 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 -GOT:Response: 404 Not Found +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-54e06a21-3138-4819-a14d-44b5ed83bc1c +Openstack-Request-Id: req-26ec7ccc-a71a-4b25-ad53-c8dd2ca60680 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 +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': '98c39700-95a6-474c-aee8-396235f7f3eb', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-858c9ce7-3e6b-4311-b52f-75c7e89a7e9c +Openstack-Request-Id: req-45482e29-66ac-4a6e-91fc-a104150b7412 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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:07.076948+00:00", "updated_at": "2025-02-07T17:33:07.103274+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": "98c39700-95a6-474c-aee8-396235f7f3eb"} +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-90da34b2-4565-42aa-8115-4f8948002061 +Openstack-Request-Id: req-1cd764cb-f9d3-4db7-bd98-029053399979 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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:07.271755+00:00", "updated_at": "2025-02-07T17:33:07.291359+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-8412f8dc-d004-4965-98ed-986c5b7f5aee +Openstack-Request-Id: req-b0800175-d0e5-48fc-9ecd-36c30433791d 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 +{"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-4a487536-4794-4f91-86be-be21622a9c0e +Openstack-Request-Id: req-cf6fd67d-2af1-44f1-8853-b692c69fa98e X-Openstack-Ironic-Api-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 +{"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-d43b8dd6-cc8e-401c-8a96-998d2b1f8c33 +Openstack-Request-Id: req-e11516a9-ed77-4d37-8c0b-d9d96c4f50c2 X-Openstack-Ironic-Api-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 +{"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'}] +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.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_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_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_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_node.TestPut.test_clean +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean ... 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_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_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_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_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 +GOT:{'connectors': [{'uuid': '40682c4a-e2af-4b56-b3ef-506d86c08f7a', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/40682c4a-e2af-4b56-b3ef-506d86c08f7a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/40682c4a-e2af-4b56-b3ef-506d86c08f7a', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '0a84e6c9-edde-4b35-90c9-c0abfeced5a0', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/0a84e6c9-edde-4b35-90c9-c0abfeced5a0', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/0a84e6c9-edde-4b35-90c9-c0abfeced5a0', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '2db6e099-5799-4b44-be58-3b8970aa5221', 'connector_id': 'test-connector_id-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/2db6e099-5799-4b44-be58-3b8970aa5221', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/2db6e099-5799-4b44-be58-3b8970aa5221', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '8d6eab24-60ad-47b4-981c-13bf59a5a323', 'connector_id': 'test-connector_id-3', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/8d6eab24-60ad-47b4-981c-13bf59a5a323', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/8d6eab24-60ad-47b4-981c-13bf59a5a323', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '3b56ce7b-af45-4424-81c5-74e46fe39e00', 'connector_id': 'test-connector_id-4', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/3b56ce7b-af45-4424-81c5-74e46fe39e00', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/3b56ce7b-af45-4424-81c5-74e46fe39e00', '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': 'bd982c40-4b2f-432f-b7f3-c1fc1e05a2ce', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/bd982c40-4b2f-432f-b7f3-c1fc1e05a2ce', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/bd982c40-4b2f-432f-b7f3-c1fc1e05a2ce', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'cd1a4fdc-5ceb-40db-b920-f23d811e8455', 'connector_id': 'test-connector_id-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/cd1a4fdc-5ceb-40db-b920-f23d811e8455', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/cd1a4fdc-5ceb-40db-b920-f23d811e8455', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'fd8fdb5f-e2da-4c29-830e-9407290d31ac', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/fd8fdb5f-e2da-4c29-830e-9407290d31ac', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/fd8fdb5f-e2da-4c29-830e-9407290d31ac', '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-4d33485a-b1de-4b7a-bd63-55f5edf3fc3a +Openstack-Request-Id: req-cf0c1f90-c13c-44d0-817f-a317ed99c1a8 X-Openstack-Ironic-Api-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/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/local_link_connection/network_type', 'value': 'unmanaged', 'op': 'add'}] +{"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-c03cfaf1-d771-4577-b49b-de91dbfa7c17 +X-Openstack-Ironic-Api-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}"} +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-1e1a1b13-e762-4538-baed-259cf722816d +Openstack-Request-Id: req-5d4a3fc6-57b4-4b5f-97df-2ce6ae80a56f 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": "2024-01-06T10:56:46.993322+00:00", "updated_at": "2024-01-06T10:56:47.017176+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 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:07.396235+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-8b98bd7b-c34c-46fd-9c6f-64929f91643d +Openstack-Request-Id: req-84a94471-aba0-491c-97ae-6c95ef585500 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}"} -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'}] +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-3dfaaa28-221d-417b-85ec-a6997e0a0b66 +Openstack-Request-Id: req-efaf7286-5661-4338-9f38-44e9226af942 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": "2024-01-06T10:56:47.129847+00:00", "updated_at": "2024-01-06T10:56:47.154364+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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:07.818605+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-ab8571f2-40dc-4987-bc89-6f5d4cfdb661 +Openstack-Request-Id: req-9639cbc6-dd4f-4613-b752-6395da5b036c 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'}] +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'}] +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.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.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.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_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_conductor.TestListConductors.test_list +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list ... 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.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_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_portgroup.TestListPortgroups.test_detail_sort_key_allowed +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_allowed ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-cbbebb49-1b72-4b91-b87b-202dd1bdfc06 +Openstack-Request-Id: req-9b24b5bc-1411-46cb-9a9a-5fcb59bfa49a 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": "2024-01-06T10:56:47.243388+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_port.TestPatch.test_add_physical_network -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network ... 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.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_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_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) -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:45.584454+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 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "fe6779f7-81cb-42cc-96c4-3b80656e33a7", "created_at": "2025-02-07T17:33:07.288583+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/fe6779f7-81cb-42cc-96c4-3b80656e33a7", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/ports", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/states", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/volume", "rel": "self"}, {"href": "http://localhost/nodes/fe6779f7-81cb-42cc-96c4-3b80656e33a7/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/057712f7-79bb-4635-bf4b-2501540578b9 [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-6316a4d8-c6c2-4088-85bb-1816e1b2b55f +Openstack-Request-Id: req-fffbea17-3d2d-4336-a3ba-eb588140b010 X-Openstack-Ironic-Api-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/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 +X-Openstack-Ironic-Api-Version: 1.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/057712f7-79bb-4635-bf4b-2501540578b9 [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-b1f3685e-a194-4492-90a2-8c3ee4699206 +Openstack-Request-Id: req-696c93d5-d8cf-4d00-aff9-1956e16bf394 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': '48842723-74ce-418e-8ea0-b56bf9210e30', 'created_at': '2024-01-06T10:56:46.212474+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': 'f845f0a7-9862-4b4f-8c8c-508509ba22e5', '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/48842723-74ce-418e-8ea0-b56bf9210e30', 'rel': 'self'}, {'href': 'http://localhost/nodes/48842723-74ce-418e-8ea0-b56bf9210e30', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/48842723-74ce-418e-8ea0-b56bf9210e30/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/48842723-74ce-418e-8ea0-b56bf9210e30/ports', 'rel': 'bookmark'}]}, {'uuid': '5d27bdbc-bec2-44bf-a7b1-9fb0c9125d52', 'created_at': '2024-01-06T10:56:46.217460+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': 'f5a9d7d3-e607-46ae-af10-b2d72ffbc1b3', '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/5d27bdbc-bec2-44bf-a7b1-9fb0c9125d52', 'rel': 'self'}, {'href': 'http://localhost/nodes/5d27bdbc-bec2-44bf-a7b1-9fb0c9125d52', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/5d27bdbc-bec2-44bf-a7b1-9fb0c9125d52/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/5d27bdbc-bec2-44bf-a7b1-9fb0c9125d52/ports', 'rel': 'bookmark'}]}, {'uuid': '6b53fad9-e24f-45a2-b560-80c532db863d', 'created_at': '2024-01-06T10:56:46.222145+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': '1afb1ad4-edbd-41db-82e2-1472699604e3', '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/6b53fad9-e24f-45a2-b560-80c532db863d', 'rel': 'self'}, {'href': 'http://localhost/nodes/6b53fad9-e24f-45a2-b560-80c532db863d', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/6b53fad9-e24f-45a2-b560-80c532db863d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/6b53fad9-e24f-45a2-b560-80c532db863d/ports', 'rel': 'bookmark'}]}, {'uuid': '7f7b3b57-5944-4a41-8c08-d15c5c5280b8', 'created_at': '2024-01-06T10:56:46.226940+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': '57e9aeeb-9e29-4790-9dcd-6dc3d5b1e4a0', '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/7f7b3b57-5944-4a41-8c08-d15c5c5280b8', 'rel': 'self'}, {'href': 'http://localhost/nodes/7f7b3b57-5944-4a41-8c08-d15c5c5280b8', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/7f7b3b57-5944-4a41-8c08-d15c5c5280b8/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/7f7b3b57-5944-4a41-8c08-d15c5c5280b8/ports', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?instance_uuid=f309c0bf-eb4a-4f94-803c-df607679a79f {} -GOT:{'nodes': [{'uuid': '5a682ee9-b3be-453d-ba58-4ae0b5846fe2', 'created_at': '2024-01-06T10:56:46.350910+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': 'f309c0bf-eb4a-4f94-803c-df607679a79f', '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/5a682ee9-b3be-453d-ba58-4ae0b5846fe2', 'rel': 'self'}, {'href': 'http://localhost/nodes/5a682ee9-b3be-453d-ba58-4ae0b5846fe2', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/5a682ee9-b3be-453d-ba58-4ae0b5846fe2/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/5a682ee9-b3be-453d-ba58-4ae0b5846fe2/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 {} +X-Openstack-Ironic-Api-Version: 1.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/057712f7-79bb-4635-bf4b-2501540578b9 [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-1d81b962-b4b5-400b-a032-29fae653e67c +Openstack-Request-Id: req-2074aad0-52a4-47fa-af1d-0693c448d7fe 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 {} -GOT:Response: 400 Bad Request +PATCH: /v1/nodes/057712f7-79bb-4635-bf4b-2501540578b9 [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-060ed5aa-0140-45f4-ba29-8194ec78758e +Openstack-Request-Id: req-8c27b59f-cdc2-4007-8339-68685769ae80 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.common.test_context.RequestContextTestCase.test_from_dict -ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict ... 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': 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.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/057712f7-79bb-4635-bf4b-2501540578b9 [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-743bfeee-51b1-4325-a7ce-5a808e21ba9d +Openstack-Request-Id: req-251943f9-0325-4812-8e40-adc686667920 X-Openstack-Ironic-Api-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.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/057712f7-79bb-4635-bf4b-2501540578b9 [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-57cd92d4-a98d-4c93-a02f-67e2f7f87b32 +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/057712f7-79bb-4635-bf4b-2501540578b9 [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-e1f201a1-2e3d-4fff-a466-025111004070 +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/057712f7-79bb-4635-bf4b-2501540578b9 [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-c69896fa-27fa-4210-8ef8-972acdb7ecd0 +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/1be75c8d-2de4-44c2-8ad8-20a840615cd5 [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] +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_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_versions.TestMaxVersionString.test_max_version_not_pinned +ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned ... ok +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-6517724e-32aa-4d98-9d42-3a1f180dd969 +Openstack-Request-Id: req-b5816968-6942-4189-9e2e-78d8186ab4b3 X-Openstack-Ironic-Api-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 +{"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/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 -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-881f80ed-b98f-41fc-b8cb-4edd4ece5b59 +Openstack-Request-Id: req-2bce9bdd-16f4-4d1e-8c25-c8045606a143 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-06T10:56:46.984971+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'} +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:07.200317+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-0be581bd-a0af-4db5-80be-70ee30812f2a +Openstack-Request-Id: req-3b00a7f3-ad22-4495-8755-e43daeb178ff X-Openstack-Ironic-Api-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 +{"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 -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-397834c0-90ab-431e-a896-31d71c578597 +Openstack-Request-Id: req-83099838-5e33-4bcf-bd0c-cd98115aa8f7 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-06T10:56:47.108546+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'} +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:07.552025+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-6d204e5b-4033-4602-a348-a3f489751f03 +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-07T17:33:07.782965+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-33a15355-814b-4234-9499-ab021c6e68bb +Openstack-Request-Id: req-6bc94838-88b5-49ed-a988-abaa1e7e6047 X-Openstack-Ironic-Api-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 +{"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 -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-89e14b11-1d1c-43b5-ac56-009bfa3e24dc +Openstack-Request-Id: req-61e9d0fd-e851-46b3-99f0-2cae35ec5dfb 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": "2024-01-06T10:56:47.231340+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'} +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:08.228492+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-f4f077b9-9efa-4826-bd0e-0e4ca120fe9e +Openstack-Request-Id: req-f4ed185a-4ab8-45ff-9e5a-e52c5eee92cd X-Openstack-Ironic-Api-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}"} -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_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.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.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_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_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.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 +{"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-360f3ac9-9336-4963-94b0-3872e8e49d53 +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-07T17:33:08.716768+00:00", "updated_at": "2025-02-07T17:33:08.721450+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.TestPatch.test_update_lessee +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_lessee ... 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_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_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.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.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_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_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_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 +GOT:{'conductors': [{'hostname': 'c1cd277b-d01a-4d33-af9c-91ab54b7be49', 'links': [{'href': 'http://localhost/v1/conductors/c1cd277b-d01a-4d33-af9c-91ab54b7be49', 'rel': 'self'}, {'href': 'http://localhost/conductors/c1cd277b-d01a-4d33-af9c-91ab54b7be49', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'a5c8a677-c457-4c4a-aa19-da47cfd32ccd', 'links': [{'href': 'http://localhost/v1/conductors/a5c8a677-c457-4c4a-aa19-da47cfd32ccd', 'rel': 'self'}, {'href': 'http://localhost/conductors/a5c8a677-c457-4c4a-aa19-da47cfd32ccd', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '0295d470-6dd9-4a86-bcf2-350fcb6e0a29', 'links': [{'href': 'http://localhost/v1/conductors/0295d470-6dd9-4a86-bcf2-350fcb6e0a29', 'rel': 'self'}, {'href': 'http://localhost/conductors/0295d470-6dd9-4a86-bcf2-350fcb6e0a29', 'rel': 'bookmark'}], 'alive': True}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,alive&limit=3&marker=0295d470-6dd9-4a86-bcf2-350fcb6e0a29'} +GET: /v1/conductors {} +GOT:{'conductors': [{'hostname': '273e22f1-56fb-43e8-a0fe-cf00ab830a15', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/273e22f1-56fb-43e8-a0fe-cf00ab830a15', 'rel': 'self'}, {'href': 'http://localhost/conductors/273e22f1-56fb-43e8-a0fe-cf00ab830a15', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '68669c7c-6c13-4675-96c2-9b97dbe59b2b', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/68669c7c-6c13-4675-96c2-9b97dbe59b2b', 'rel': 'self'}, {'href': 'http://localhost/conductors/68669c7c-6c13-4675-96c2-9b97dbe59b2b', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'c475dd09-428c-4b5b-84a6-235f1aa7ae55', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/c475dd09-428c-4b5b-84a6-235f1aa7ae55', 'rel': 'self'}, {'href': 'http://localhost/conductors/c475dd09-428c-4b5b-84a6-235f1aa7ae55', 'rel': 'bookmark'}], 'alive': True}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=c475dd09-428c-4b5b-84a6-235f1aa7ae55'} +GET: /v1/conductors {} +GOT:{'conductors': []} +GET: /v1/conductors?fields=hostname,alive {} +GOT:{'conductors': [{'hostname': 'rocky.rocks', 'links': [{'href': 'http://localhost/v1/conductors/rocky.rocks', 'rel': 'self'}, {'href': 'http://localhost/conductors/rocky.rocks', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'stein.rocks', 'links': [{'href': 'http://localhost/v1/conductors/stein.rocks', 'rel': 'self'}, {'href': 'http://localhost/conductors/stein.rocks', 'rel': 'bookmark'}], 'alive': True}]} +GET: /v1/conductors/rocky.rocks?fields=hostname,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-60a861c7-e459-401e-8658-c2ff52ed39c7 +Openstack-Request-Id: req-41de6cff-a89d-44c9-9785-143470c0ecc5 X-Openstack-Ironic-Api-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}"} -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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} +GET: /v1/conductors/rocky.rocks {} +GOT:{'created_at': '2025-02-07T17:33:07.207208+00:00', 'updated_at': '2025-02-07T17:33:07.206938+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 {} +GOT:{'hostname': 'rocky.rocks', '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:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7a442d17-90ee-4003-a265-2aef00dcd3e3 +Openstack-Request-Id: req-6e8f8aa2-d50b-4f40-824f-250d793d1a3f 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-06T10:56:46.871771+00:00", "updated_at": "2024-01-06T10:56:46.885373+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': '2024-01-06T10:56:46.871771+00:00', 'updated_at': '2024-01-06T10:56:46.885373+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 +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-07T17:33:07.960557+00:00', 'updated_at': '2025-02-07T17:33:07.960310+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-07T17:33:07.960557+00:00', 'updated_at': '2025-02-07T17:33:07.960310+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-07T17:33:07.960557+00:00', 'updated_at': '2025-02-07T17:33:07.960310+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-07T17:33:08.146449+00:00', 'updated_at': '2025-02-07T17:33:08.146198+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-07T17:33:08.146449+00:00', 'updated_at': '2025-02-07T17:33:08.146198+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-07T17:33:08.146449+00:00', 'updated_at': '2025-02-07T17:33:08.146198+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 {} +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-07T17:33:08.683086+00:00', 'updated_at': '2025-02-07T17:33:08.682832+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-07T17:33:08.684992+00:00', 'updated_at': '2025-02-07T17:33:08.684785+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:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:07.474570+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 {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:07.762830+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-ec0bc3d6-46b0-47ca-88bf-6ad1a518e1a8 +Openstack-Request-Id: req-08a41f37-8877-4167-abb7-5c4435c79207 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-06T10:56:46.922531+00:00", "updated_at": "2024-01-06T10:56:46.933348+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 +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': '263973b0-7099-4649-a238-d87a485a5fe5', 'created_at': '2025-02-07T17:33:08.713411+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/263973b0-7099-4649-a238-d87a485a5fe5', 'rel': 'self'}, {'href': 'http://localhost/nodes/263973b0-7099-4649-a238-d87a485a5fe5', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/263973b0-7099-4649-a238-d87a485a5fe5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/263973b0-7099-4649-a238-d87a485a5fe5/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/263973b0-7099-4649-a238-d87a485a5fe5/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/263973b0-7099-4649-a238-d87a485a5fe5/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/263973b0-7099-4649-a238-d87a485a5fe5/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/263973b0-7099-4649-a238-d87a485a5fe5/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/263973b0-7099-4649-a238-d87a485a5fe5/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/263973b0-7099-4649-a238-d87a485a5fe5/volume', 'rel': 'bookmark'}]}, {'uuid': '050b09a7-626d-4f25-815b-eda63ad1f8d2', 'created_at': '2025-02-07T17:33:08.717610+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/050b09a7-626d-4f25-815b-eda63ad1f8d2', 'rel': 'self'}, {'href': 'http://localhost/nodes/050b09a7-626d-4f25-815b-eda63ad1f8d2', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/050b09a7-626d-4f25-815b-eda63ad1f8d2/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/050b09a7-626d-4f25-815b-eda63ad1f8d2/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/050b09a7-626d-4f25-815b-eda63ad1f8d2/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/050b09a7-626d-4f25-815b-eda63ad1f8d2/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/050b09a7-626d-4f25-815b-eda63ad1f8d2/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/050b09a7-626d-4f25-815b-eda63ad1f8d2/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/050b09a7-626d-4f25-815b-eda63ad1f8d2/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/050b09a7-626d-4f25-815b-eda63ad1f8d2/volume', 'rel': 'bookmark'}]}, {'uuid': '0bd3f02f-b143-48c3-9331-76fdc17f22d7', 'created_at': '2025-02-07T17:33:08.721372+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/0bd3f02f-b143-48c3-9331-76fdc17f22d7', 'rel': 'self'}, {'href': 'http://localhost/nodes/0bd3f02f-b143-48c3-9331-76fdc17f22d7', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/0bd3f02f-b143-48c3-9331-76fdc17f22d7/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/0bd3f02f-b143-48c3-9331-76fdc17f22d7/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/0bd3f02f-b143-48c3-9331-76fdc17f22d7/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/0bd3f02f-b143-48c3-9331-76fdc17f22d7/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/0bd3f02f-b143-48c3-9331-76fdc17f22d7/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/0bd3f02f-b143-48c3-9331-76fdc17f22d7/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/0bd3f02f-b143-48c3-9331-76fdc17f22d7/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/0bd3f02f-b143-48c3-9331-76fdc17f22d7/volume', 'rel': 'bookmark'}]}, {'uuid': '81304bd7-d0ac-45eb-b94f-c4ebf9cd1177', 'created_at': '2025-02-07T17:33:08.725075+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/81304bd7-d0ac-45eb-b94f-c4ebf9cd1177', 'rel': 'self'}, {'href': 'http://localhost/nodes/81304bd7-d0ac-45eb-b94f-c4ebf9cd1177', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/81304bd7-d0ac-45eb-b94f-c4ebf9cd1177/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/81304bd7-d0ac-45eb-b94f-c4ebf9cd1177/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/81304bd7-d0ac-45eb-b94f-c4ebf9cd1177/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/81304bd7-d0ac-45eb-b94f-c4ebf9cd1177/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/81304bd7-d0ac-45eb-b94f-c4ebf9cd1177/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/81304bd7-d0ac-45eb-b94f-c4ebf9cd1177/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/81304bd7-d0ac-45eb-b94f-c4ebf9cd1177/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/81304bd7-d0ac-45eb-b94f-c4ebf9cd1177/volume', 'rel': 'bookmark'}]}, {'uuid': '4feb4721-efc7-44cc-ae1b-0a8e380b9a8b', 'created_at': '2025-02-07T17:33:08.732860+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/4feb4721-efc7-44cc-ae1b-0a8e380b9a8b', 'rel': 'self'}, {'href': 'http://localhost/nodes/4feb4721-efc7-44cc-ae1b-0a8e380b9a8b', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/4feb4721-efc7-44cc-ae1b-0a8e380b9a8b/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/4feb4721-efc7-44cc-ae1b-0a8e380b9a8b/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/4feb4721-efc7-44cc-ae1b-0a8e380b9a8b/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/4feb4721-efc7-44cc-ae1b-0a8e380b9a8b/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/4feb4721-efc7-44cc-ae1b-0a8e380b9a8b/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/4feb4721-efc7-44cc-ae1b-0a8e380b9a8b/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/4feb4721-efc7-44cc-ae1b-0a8e380b9a8b/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/4feb4721-efc7-44cc-ae1b-0a8e380b9a8b/volume', 'rel': 'bookmark'}]}, {'uuid': '3c4b9c43-6be1-45f7-baf5-d9f7f87901bb', 'created_at': '2025-02-07T17:33:08.742074+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/3c4b9c43-6be1-45f7-baf5-d9f7f87901bb', 'rel': 'self'}, {'href': 'http://localhost/nodes/3c4b9c43-6be1-45f7-baf5-d9f7f87901bb', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/3c4b9c43-6be1-45f7-baf5-d9f7f87901bb/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/3c4b9c43-6be1-45f7-baf5-d9f7f87901bb/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/3c4b9c43-6be1-45f7-baf5-d9f7f87901bb/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/3c4b9c43-6be1-45f7-baf5-d9f7f87901bb/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/3c4b9c43-6be1-45f7-baf5-d9f7f87901bb/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/3c4b9c43-6be1-45f7-baf5-d9f7f87901bb/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/3c4b9c43-6be1-45f7-baf5-d9f7f87901bb/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/3c4b9c43-6be1-45f7-baf5-d9f7f87901bb/volume', 'rel': 'bookmark'}]}]}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_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_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.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_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_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.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_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_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.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.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_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.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_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 +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-68f62ab7-21c8-43d5-86ed-562c30140cd4 +Openstack-Request-Id: req-e2f6a259-cc0a-4f4b-a123-d3c6770a6af4 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: uuid, extra, description\", \"debuginfo\": null}"} -PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:07.720104+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-84c51d8c-da20-41ba-80e1-832d2f47573d +Openstack-Request-Id: req-a8e0b279-ceb4-4d26-93a6-b83c32623573 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/7ce1026b-0fb3-448d-bccd-69c67d9a77e7 [{'path': '/extra/foo2', 'op': 'remove'}] +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": "13214b7f-3369-48ed-8078-17c1dcf3a569", "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-a8e0b279-ceb4-4d26-93a6-b83c32623573 +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": "13214b7f-3369-48ed-8078-17c1dcf3a569", "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-90e65413-d1eb-435b-bcb6-99a38f79c861 +Openstack-Request-Id: req-af1e9ea1-3a6e-4ece-be14-b09cc87d9591 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "7ce1026b-0fb3-448d-bccd-69c67d9a77e7", "created_at": "2024-01-06T10:56:47.062256+00:00", "updated_at": "2024-01-06T10:56:47.074321+00:00", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/7ce1026b-0fb3-448d-bccd-69c67d9a77e7", "rel": "self"}, {"href": "http://localhost/chassis/7ce1026b-0fb3-448d-bccd-69c67d9a77e7", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/7ce1026b-0fb3-448d-bccd-69c67d9a77e7/nodes", "rel": "self"}, {"href": "http://localhost/chassis/7ce1026b-0fb3-448d-bccd-69c67d9a77e7/nodes", "rel": "bookmark"}]]} -GET: /v1/chassis/7ce1026b-0fb3-448d-bccd-69c67d9a77e7 {} -GOT:{'uuid': '7ce1026b-0fb3-448d-bccd-69c67d9a77e7', 'created_at': '2024-01-06T10:56:47.062256+00:00', 'updated_at': '2024-01-06T10:56:47.074321+00:00', 'description': 'foobar', 'extra': {'foo1': 'bar1', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/7ce1026b-0fb3-448d-bccd-69c67d9a77e7', 'rel': 'self'}, {'href': 'http://localhost/chassis/7ce1026b-0fb3-448d-bccd-69c67d9a77e7', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/7ce1026b-0fb3-448d-bccd-69c67d9a77e7/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/7ce1026b-0fb3-448d-bccd-69c67d9a77e7/nodes', 'rel': 'bookmark'}]]} -PATCH: /v1/chassis/7ce1026b-0fb3-448d-bccd-69c67d9a77e7 [{'path': '/extra', 'op': 'remove'}] +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": "b6a9e07d-a90f-4c04-ac2f-17ad6f4e9518", "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_root.TestRoot.test_get_root +ironic.tests.unit.api.test_root.TestRoot.test_get_root ... 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_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_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_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_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_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_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_port.TestPatch.test_remove_mandatory_field +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_mandatory_field ... 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_update_network_data +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data ... 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_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.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_node.TestListNodes.test_detail_query_false +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_query_false ... 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.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_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_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_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_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_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_portgroup.TestPatch.test_remove_uuid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid ... ok +ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema +ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema ... ok +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 GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-68d52983-93c6-42f8-8324-8ce543961831 +Openstack-Request-Id: req-aa1a8280-62a3-4e23-8dc5-7a806e4984d1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "7ce1026b-0fb3-448d-bccd-69c67d9a77e7", "created_at": "2024-01-06T10:56:47.062256+00:00", "updated_at": "2024-01-06T10:56:47.090725+00:00", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/7ce1026b-0fb3-448d-bccd-69c67d9a77e7", "rel": "self"}, {"href": "http://localhost/chassis/7ce1026b-0fb3-448d-bccd-69c67d9a77e7", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/7ce1026b-0fb3-448d-bccd-69c67d9a77e7/nodes", "rel": "self"}, {"href": "http://localhost/chassis/7ce1026b-0fb3-448d-bccd-69c67d9a77e7/nodes", "rel": "bookmark"}]]} -GET: /v1/chassis/7ce1026b-0fb3-448d-bccd-69c67d9a77e7 {} -GOT:{'uuid': '7ce1026b-0fb3-448d-bccd-69c67d9a77e7', 'created_at': '2024-01-06T10:56:47.062256+00:00', 'updated_at': '2024-01-06T10:56:47.090725+00:00', 'description': 'foobar', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/7ce1026b-0fb3-448d-bccd-69c67d9a77e7', 'rel': 'self'}, {'href': 'http://localhost/chassis/7ce1026b-0fb3-448d-bccd-69c67d9a77e7', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/7ce1026b-0fb3-448d-bccd-69c67d9a77e7/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/7ce1026b-0fb3-448d-bccd-69c67d9a77e7/nodes', 'rel': 'bookmark'}]]} -PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/extra/non-existent', 'op': 'remove'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.65 +{"uuid": "1be75c8d-2de4-44c2-8ad8-20a840615cd5", "created_at": "2025-02-07T17:33:08.410311+00:00", "updated_at": null, "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/1be75c8d-2de4-44c2-8ad8-20a840615cd5", "rel": "self"}, {"href": "http://localhost/nodes/1be75c8d-2de4-44c2-8ad8-20a840615cd5", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be75c8d-2de4-44c2-8ad8-20a840615cd5/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be75c8d-2de4-44c2-8ad8-20a840615cd5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be75c8d-2de4-44c2-8ad8-20a840615cd5/states", "rel": "self"}, {"href": "http://localhost/nodes/1be75c8d-2de4-44c2-8ad8-20a840615cd5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be75c8d-2de4-44c2-8ad8-20a840615cd5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be75c8d-2de4-44c2-8ad8-20a840615cd5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be75c8d-2de4-44c2-8ad8-20a840615cd5/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be75c8d-2de4-44c2-8ad8-20a840615cd5/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/0efc2a74-c595-497c-ac18-dbfb016065e0 [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-9fcf6c0e-c77c-41bd-a25c-6040f85aedec +Openstack-Request-Id: req-ada60a2f-f33c-4841-ae79-1b02b83ad261 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/5c3d7c1c-6ac2-4b86-bb09-239685168d76 [{'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_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_port.TestPost.test_create_port_novif_nopxe_noportgroup -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_noportgroup ... 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.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_context.RequestContextTestCase.test_from_dict_older_api_server -ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict_older_api_server ... ok +X-Openstack-Ironic-Api-Version: 1.64 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/e936ce4f-1060-4aec-ac6d-2d27ac1bb2a0 [{'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-41eaae65-e195-4f15-aa2a-48bf437fd468 +Openstack-Request-Id: req-5ff32fe0-7ef0-4f6d-942b-7dc73c6c97bf +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.66 +{"uuid": "e936ce4f-1060-4aec-ac6d-2d27ac1bb2a0", "created_at": "2025-02-07T17:33:09.103706+00:00", "updated_at": null, "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/e936ce4f-1060-4aec-ac6d-2d27ac1bb2a0", "rel": "self"}, {"href": "http://localhost/nodes/e936ce4f-1060-4aec-ac6d-2d27ac1bb2a0", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e936ce4f-1060-4aec-ac6d-2d27ac1bb2a0/ports", "rel": "self"}, {"href": "http://localhost/nodes/e936ce4f-1060-4aec-ac6d-2d27ac1bb2a0/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e936ce4f-1060-4aec-ac6d-2d27ac1bb2a0/states", "rel": "self"}, {"href": "http://localhost/nodes/e936ce4f-1060-4aec-ac6d-2d27ac1bb2a0/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e936ce4f-1060-4aec-ac6d-2d27ac1bb2a0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e936ce4f-1060-4aec-ac6d-2d27ac1bb2a0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e936ce4f-1060-4aec-ac6d-2d27ac1bb2a0/volume", "rel": "self"}, {"href": "http://localhost/nodes/e936ce4f-1060-4aec-ac6d-2d27ac1bb2a0/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/73de81b1-e329-4d6e-950c-f548572cf967 [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] +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 +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-af1e9ea1-3a6e-4ece-be14-b09cc87d9591 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "c7a825db-14a4-42dd-9b44-d100355a0753", "created_at": "2024-01-06T10:56:46.925020+00:00", "updated_at": null, "automated_clean": null, "bios_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/c7a825db-14a4-42dd-9b44-d100355a0753", "rel": "self"}, {"href": "http://localhost/nodes/c7a825db-14a4-42dd-9b44-d100355a0753", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c7a825db-14a4-42dd-9b44-d100355a0753/ports", "rel": "self"}, {"href": "http://localhost/nodes/c7a825db-14a4-42dd-9b44-d100355a0753/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c7a825db-14a4-42dd-9b44-d100355a0753/states", "rel": "self"}, {"href": "http://localhost/nodes/c7a825db-14a4-42dd-9b44-d100355a0753/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c7a825db-14a4-42dd-9b44-d100355a0753/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c7a825db-14a4-42dd-9b44-d100355a0753/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c7a825db-14a4-42dd-9b44-d100355a0753/volume", "rel": "self"}, {"href": "http://localhost/nodes/c7a825db-14a4-42dd-9b44-d100355a0753/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/b3cc9ddc-b325-434c-974d-4e3b7f1795fb [{'path': '/description', 'value': 'foo', 'op': 'replace'}, {'path': '/extra/foo', 'value': 'bar', 'op': 'add'}, {'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] +{"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": "b6a9e07d-a90f-4c04-ac2f-17ad6f4e9518", "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-58f77644-ce8e-47e8-b98d-46179049d915 +Openstack-Request-Id: req-4303c6ae-372a-4254-8052-efc42fb0158f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "b3cc9ddc-b325-434c-974d-4e3b7f1795fb", "created_at": "2024-01-06T10:56:47.020954+00:00", "updated_at": null, "automated_clean": null, "bios_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/b3cc9ddc-b325-434c-974d-4e3b7f1795fb", "rel": "self"}, {"href": "http://localhost/nodes/b3cc9ddc-b325-434c-974d-4e3b7f1795fb", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b3cc9ddc-b325-434c-974d-4e3b7f1795fb/ports", "rel": "self"}, {"href": "http://localhost/nodes/b3cc9ddc-b325-434c-974d-4e3b7f1795fb/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b3cc9ddc-b325-434c-974d-4e3b7f1795fb/states", "rel": "self"}, {"href": "http://localhost/nodes/b3cc9ddc-b325-434c-974d-4e3b7f1795fb/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b3cc9ddc-b325-434c-974d-4e3b7f1795fb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b3cc9ddc-b325-434c-974d-4e3b7f1795fb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b3cc9ddc-b325-434c-974d-4e3b7f1795fb/volume", "rel": "self"}, {"href": "http://localhost/nodes/b3cc9ddc-b325-434c-974d-4e3b7f1795fb/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/3621d3c5-42a3-41aa-a2a0-4c2cae45bc65 [{'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] -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_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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception ... ok -GOT:Response: 400 Bad Request +{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:09.418228+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-07T17:33:09.421689+00:00", "updated_at": "2025-02-07T17:33:09.426413+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": "9367cf5b-ce8d-4863-a571-44a9f65d0cbb", "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": "9367cf5b-ce8d-4863-a571-44a9f65d0cbb", "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-07T17:33:09.450516+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-c2171c01-706e-4133-b7d2-3cb43a9de52e +Openstack-Request-Id: req-4303c6ae-372a-4254-8052-efc42fb0158f X-Openstack-Ironic-Api-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 +{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:09.418228+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-07T17:33:09.421689+00:00", "updated_at": "2025-02-07T17:33:09.426413+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": "9367cf5b-ce8d-4863-a571-44a9f65d0cbb", "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": "9367cf5b-ce8d-4863-a571-44a9f65d0cbb", "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-07T17:33:09.450516+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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"}]}]}GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2025-02-07T17:33:07.197696+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 -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-0c110561-6b52-4d1f-bc24-8e0e85ad4f61 +Openstack-Request-Id: req-ade81976-fbd7-422b-ae61-28b09f39355e 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-06T10:56:46.835896+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/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=e06a39b8-9785-4327-b314-5d3896e90e4c {} -GOT:{'node': {'uuid': 'e06a39b8-9785-4327-b314-5d3896e90e4c', '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/e06a39b8-9785-4327-b314-5d3896e90e4c', 'rel': 'self'}, {'href': 'http://localhost/nodes/e06a39b8-9785-4327-b314-5d3896e90e4c', '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=e06a39b8-9785-4327-b314-5d3896e90e4c {} -GOT:{'node': {'uuid': 'e06a39b8-9785-4327-b314-5d3896e90e4c', '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/e06a39b8-9785-4327-b314-5d3896e90e4c', 'rel': 'self'}, {'href': 'http://localhost/nodes/e06a39b8-9785-4327-b314-5d3896e90e4c', '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=e06a39b8-9785-4327-b314-5d3896e90e4c {} -GOT:{'node': {'uuid': 'e06a39b8-9785-4327-b314-5d3896e90e4c', '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/e06a39b8-9785-4327-b314-5d3896e90e4c', 'rel': 'self'}, {'href': 'http://localhost/nodes/e06a39b8-9785-4327-b314-5d3896e90e4c', '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': '170941a2-0bda-4d45-be9b-a5f0fe41ad15', '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/170941a2-0bda-4d45-be9b-a5f0fe41ad15', 'rel': 'self'}, {'href': 'http://localhost/nodes/170941a2-0bda-4d45-be9b-a5f0fe41ad15', '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=0760db50-2d14-40ad-aa4e-2af68ce7c7ea {} -GOT:{'node': {'uuid': '0760db50-2d14-40ad-aa4e-2af68ce7c7ea', '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/0760db50-2d14-40ad-aa4e-2af68ce7c7ea', 'rel': 'self'}, {'href': 'http://localhost/nodes/0760db50-2d14-40ad-aa4e-2af68ce7c7ea', '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=5a58915c-5d76-478f-a38f-982ad533665d {} -GOT:{'node': {'uuid': '5a58915c-5d76-478f-a38f-982ad533665d', '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/5a58915c-5d76-478f-a38f-982ad533665d', 'rel': 'self'}, {'href': 'http://localhost/nodes/5a58915c-5d76-478f-a38f-982ad533665d', '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 {} -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.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_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.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.common.test_context.RequestContextTestCase.test_thread_with_context -ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_with_context ... 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 -/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) -GOT:{'ports': [{'uuid': '885e04b0-b254-424b-9f00-d6eabcf4d255', 'created_at': '2024-01-06T10:56:46.593460+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/885e04b0-b254-424b-9f00-d6eabcf4d255', 'rel': 'self'}, {'href': 'http://localhost/ports/885e04b0-b254-424b-9f00-d6eabcf4d255', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None}, {'uuid': '661d876b-b50d-40ab-b43d-ff0a0b561504', 'created_at': '2024-01-06T10:56:46.595167+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/661d876b-b50d-40ab-b43d-ff0a0b561504', 'rel': 'self'}, {'href': 'http://localhost/ports/661d876b-b50d-40ab-b43d-ff0a0b561504', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None}]} -GET: /v1/ports/detail?sort_key=pxe_enabled {} +{"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-07T17:33:07.552157+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-07T17:33:07.981123+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': 'b067cf6d-3a1a-4258-89d3-d27a73f211e6', 'created_at': '2025-02-07T17:33:08.426585+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/b067cf6d-3a1a-4258-89d3-d27a73f211e6', 'rel': 'self'}, {'href': 'http://localhost/portgroups/b067cf6d-3a1a-4258-89d3-d27a73f211e6', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/b067cf6d-3a1a-4258-89d3-d27a73f211e6/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/b067cf6d-3a1a-4258-89d3-d27a73f211e6/ports', 'rel': 'bookmark'}]}, {'uuid': '1db5b454-cbb0-4a42-9a06-f36edcf8aac3', 'created_at': '2025-02-07T17:33:08.418855+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/1db5b454-cbb0-4a42-9a06-f36edcf8aac3', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1db5b454-cbb0-4a42-9a06-f36edcf8aac3', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/1db5b454-cbb0-4a42-9a06-f36edcf8aac3/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1db5b454-cbb0-4a42-9a06-f36edcf8aac3/ports', 'rel': 'bookmark'}]}, {'uuid': '5e11efcd-05c1-4fb7-b311-c4f1d3f6a7b4', 'created_at': '2025-02-07T17:33:08.417019+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/5e11efcd-05c1-4fb7-b311-c4f1d3f6a7b4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5e11efcd-05c1-4fb7-b311-c4f1d3f6a7b4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/5e11efcd-05c1-4fb7-b311-c4f1d3f6a7b4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5e11efcd-05c1-4fb7-b311-c4f1d3f6a7b4/ports', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups/detail?sort_key=mode {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-a33622e3-e57f-4522-aec3-9aa2480d68a9 +Openstack-Request-Id: req-50a6638c-9a67-4d99-a743-68ef60b0cc1c 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.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -GET: /v1/ports?detail=True&fields=name {} +GET: /v1/portgroups?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-902bb654-78fb-4d5d-9fd8-36cc2e82d121 +Openstack-Request-Id: req-92ce946e-d9f9-44fa-ac73-bc1d19b57bee X-Openstack-Ironic-Api-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 {} +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-e54b9662-b4d9-4865-bafd-107d52db67b6 +Openstack-Request-Id: req-8c225174-7c90-4afe-ab8a-2a4b2f373cae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.42 {"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': 'c9565689-f9cd-44b9-a888-a8977635976e', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/c9565689-f9cd-44b9-a888-a8977635976e', 'rel': 'self'}, {'href': 'http://localhost/ports/c9565689-f9cd-44b9-a888-a8977635976e', 'rel': 'bookmark'}]}, {'uuid': '7093f90d-3af3-4aa5-b293-eeb974fcb02a', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/7093f90d-3af3-4aa5-b293-eeb974fcb02a', 'rel': 'self'}, {'href': 'http://localhost/ports/7093f90d-3af3-4aa5-b293-eeb974fcb02a', 'rel': 'bookmark'}]}, {'uuid': 'bce5537e-079f-4971-bf3e-7ac1f7a1a999', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/bce5537e-079f-4971-bf3e-7ac1f7a1a999', 'rel': 'self'}, {'href': 'http://localhost/ports/bce5537e-079f-4971-bf3e-7ac1f7a1a999', '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-82e1ee2c-8056-40be-a70a-a74674707a9e -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': 'b1cdc8a6-b866-48f5-a10f-f690c6513312', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/b1cdc8a6-b866-48f5-a10f-f690c6513312', 'rel': 'self'}, {'href': 'http://localhost/ports/b1cdc8a6-b866-48f5-a10f-f690c6513312', 'rel': 'bookmark'}]}, {'uuid': '3816828a-17f6-4822-9cd5-b4f0c22e93ce', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/3816828a-17f6-4822-9cd5-b4f0c22e93ce', 'rel': 'self'}, {'href': 'http://localhost/ports/3816828a-17f6-4822-9cd5-b4f0c22e93ce', 'rel': 'bookmark'}]}, {'uuid': 'f7025fb0-6b05-4412-8397-8dd7e1b4b03f', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/f7025fb0-6b05-4412-8397-8dd7e1b4b03f', 'rel': 'self'}, {'href': 'http://localhost/ports/f7025fb0-6b05-4412-8397-8dd7e1b4b03f', '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-06T10:56:47.304847+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-06T10:56:47.355434+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-06T10:56:47.407849+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 {} +GET: /v1/portgroups {} +GOT:{'portgroups': []} +GET: /v1/portgroups?node=test-node {} +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.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.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_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_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.common.test_args.ValidateSchemaTest.test_schema_needs_args +ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_args ... 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.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_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_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_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_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.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_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_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.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_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.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_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_portgroup.TestPatch.test_replace_multi +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi ... 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.common.test_args.ValidateSchemaTest.test_schema_needs_mixed +ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_mixed ... 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_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_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_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.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.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 + +GET: /v1/nodes/detail {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a376ee5a-6099-4f6f-83f9-7d4ee241aa7d +Openstack-Request-Id: req-19834f3c-bf84-4d98-81c4-a5858e742734 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 {} -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.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.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.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_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.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_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 -/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.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.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.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.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_deploy_template.TestListDeployTemplates.test_collection_links -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links ... ok -"max-count" must be a positive value. -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.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 -/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_policy_values -ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_policy_values ... 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_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.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) -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_ramdisk.TestLookupScopedRBAC.test_restrict_lookup -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_restrict_lookup ... 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.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_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.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 -/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.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.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_utils.TestCheckAllowFields.test_allow_agent_token -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_agent_token ... ok -GOT:Response: 200 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 {} +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': '5abb4d6a-811f-4895-b786-32501b8ea522', 'created_at': '2025-02-07T17:33:09.519786+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/5abb4d6a-811f-4895-b786-32501b8ea522', 'rel': 'self'}, {'href': 'http://localhost/nodes/5abb4d6a-811f-4895-b786-32501b8ea522', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/5abb4d6a-811f-4895-b786-32501b8ea522/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/5abb4d6a-811f-4895-b786-32501b8ea522/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/5abb4d6a-811f-4895-b786-32501b8ea522/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/5abb4d6a-811f-4895-b786-32501b8ea522/states', 'rel': 'bookmark'}]}, {'uuid': '067fddd1-2e62-4c88-8a5e-78a902f3455d', 'created_at': '2025-02-07T17:33:09.515873+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/067fddd1-2e62-4c88-8a5e-78a902f3455d', 'rel': 'self'}, {'href': 'http://localhost/nodes/067fddd1-2e62-4c88-8a5e-78a902f3455d', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/067fddd1-2e62-4c88-8a5e-78a902f3455d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/067fddd1-2e62-4c88-8a5e-78a902f3455d/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/067fddd1-2e62-4c88-8a5e-78a902f3455d/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/067fddd1-2e62-4c88-8a5e-78a902f3455d/states', 'rel': 'bookmark'}]}, {'uuid': 'f425e675-20d4-4bed-a1f4-9aa54ca32dc0', 'created_at': '2025-02-07T17:33:09.510698+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/f425e675-20d4-4bed-a1f4-9aa54ca32dc0', 'rel': 'self'}, {'href': 'http://localhost/nodes/f425e675-20d4-4bed-a1f4-9aa54ca32dc0', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/f425e675-20d4-4bed-a1f4-9aa54ca32dc0/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/f425e675-20d4-4bed-a1f4-9aa54ca32dc0/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/f425e675-20d4-4bed-a1f4-9aa54ca32dc0/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/f425e675-20d4-4bed-a1f4-9aa54ca32dc0/states', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?sort_key=resource_class {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-d8e8d90f-e55f-48da-b3c6-84ca7ef8bad0 +Openstack-Request-Id: req-437dace4-8132-4275-8087-ba8de15ca377 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "5c3d7c1c-6ac2-4b86-bb09-239685168d76", "created_at": "2024-01-06T10:56:47.195635+00:00", "updated_at": "2024-01-06T10:56:47.207475+00:00", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/5c3d7c1c-6ac2-4b86-bb09-239685168d76", "rel": "self"}, {"href": "http://localhost/chassis/5c3d7c1c-6ac2-4b86-bb09-239685168d76", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/5c3d7c1c-6ac2-4b86-bb09-239685168d76/nodes", "rel": "self"}, {"href": "http://localhost/chassis/5c3d7c1c-6ac2-4b86-bb09-239685168d76/nodes", "rel": "bookmark"}]]} -GET: /v1/chassis/5c3d7c1c-6ac2-4b86-bb09-239685168d76 {} -GOT:{'uuid': '5c3d7c1c-6ac2-4b86-bb09-239685168d76', 'created_at': '2024-01-06T10:56:47.195635+00:00', 'updated_at': '2024-01-06T10:56:47.207475+00:00', 'description': None, 'extra': {'a': 'b'}, 'links': [{'href': 'http://localhost/v1/chassis/5c3d7c1c-6ac2-4b86-bb09-239685168d76', 'rel': 'self'}, {'href': 'http://localhost/chassis/5c3d7c1c-6ac2-4b86-bb09-239685168d76', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/5c3d7c1c-6ac2-4b86-bb09-239685168d76/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/5c3d7c1c-6ac2-4b86-bb09-239685168d76/nodes', 'rel': 'bookmark'}]]} -PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/uuid', 'op': 'remove'}] +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.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_fallback +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_fallback ... ok GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-2ce3622f-eb5b-428b-81ba-015e89e333a9 +Openstack-Request-Id: req-f4d327a4-7706-43ff-b44d-b16b9ea57a2c 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/29a30d21-522e-40ff-93ee-ff49fac70dc8 [{'path': '/extra/foo2', 'value': 'new value', '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/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-010c9a47-5055-4bc3-ac94-a950ab24e92c +Openstack-Request-Id: req-974a36bb-9f02-4d82-9059-5e875adc92b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "29a30d21-522e-40ff-93ee-ff49fac70dc8", "created_at": "2024-01-06T10:56:47.323120+00:00", "updated_at": "2024-01-06T10:56:47.334187+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/29a30d21-522e-40ff-93ee-ff49fac70dc8", "rel": "self"}, {"href": "http://localhost/chassis/29a30d21-522e-40ff-93ee-ff49fac70dc8", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/29a30d21-522e-40ff-93ee-ff49fac70dc8/nodes", "rel": "self"}, {"href": "http://localhost/chassis/29a30d21-522e-40ff-93ee-ff49fac70dc8/nodes", "rel": "bookmark"}]]} -GET: /v1/chassis/29a30d21-522e-40ff-93ee-ff49fac70dc8 {} -GOT:{'uuid': '29a30d21-522e-40ff-93ee-ff49fac70dc8', 'created_at': '2024-01-06T10:56:47.323120+00:00', 'updated_at': '2024-01-06T10:56:47.334187+00:00', 'description': 'data-center-1-chassis', 'extra': {'foo1': 'bar1', 'foo2': 'new value', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/29a30d21-522e-40ff-93ee-ff49fac70dc8', 'rel': 'self'}, {'href': 'http://localhost/chassis/29a30d21-522e-40ff-93ee-ff49fac70dc8', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/29a30d21-522e-40ff-93ee-ff49fac70dc8/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/29a30d21-522e-40ff-93ee-ff49fac70dc8/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.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-07T17:33:07.456834+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-e913710c-62e4-4ee0-8945-6a9f7337d0ff +Openstack-Request-Id: req-fadddec2-9fab-4b29-8eee-64b4b494959c 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-06T10:56:47.373518+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-06T10:56:47.373518+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.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': '68a3db15-079e-4b77-916a-db5ecff26a4e', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/68a3db15-079e-4b77-916a-db5ecff26a4e', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/68a3db15-079e-4b77-916a-db5ecff26a4e', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '0a838763-febe-4441-b8c0-9e5518cb83b6', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/0a838763-febe-4441-b8c0-9e5518cb83b6', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/0a838763-febe-4441-b8c0-9e5518cb83b6', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '63c0d7aa-f63b-41f3-afb4-e41ac0b7654f', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/63c0d7aa-f63b-41f3-afb4-e41ac0b7654f', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/63c0d7aa-f63b-41f3-afb4-e41ac0b7654f', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/volume/targets?fields=uuid,extra {} +GOT:{'targets': [{'uuid': 'd11f7a04-74b4-44ab-8bfb-4ca3c624e609', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/d11f7a04-74b4-44ab-8bfb-4ca3c624e609', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/d11f7a04-74b4-44ab-8bfb-4ca3c624e609', 'rel': 'bookmark'}]}, {'uuid': '0ebcbf03-13f7-4fcc-8170-bc9022f1f0be', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/0ebcbf03-13f7-4fcc-8170-bc9022f1f0be', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/0ebcbf03-13f7-4fcc-8170-bc9022f1f0be', 'rel': 'bookmark'}]}, {'uuid': '9cfd9477-cd80-486d-8207-3985562a7785', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/9cfd9477-cd80-486d-8207-3985562a7785', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/9cfd9477-cd80-486d-8207-3985562a7785', 'rel': 'bookmark'}]}]} +GET: /v1/volume/targets?fields=boot_index&limit=2 {} +GOT:{'targets': [{'boot_index': 0, 'links': [{'href': 'http://localhost/v1/volume/targets/485817e0-7080-4d53-aa01-d464d8b49de2', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/485817e0-7080-4d53-aa01-d464d8b49de2', 'rel': 'bookmark'}]}, {'boot_index': 1, 'links': [{'href': 'http://localhost/v1/volume/targets/3b9bb462-41f3-40ca-986b-4dccef47aae4', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/3b9bb462-41f3-40ca-986b-4dccef47aae4', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=boot_index&limit=2&marker=3b9bb462-41f3-40ca-986b-4dccef47aae4'} +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-19f21e62-93e1-4f91-b5aa-7fa590b516c3 +Openstack-Request-Id: req-16f8228d-cd07-4e0c-8441-4b64f22f0d22 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/3082ab9a-852e-42b6-98a4-cfec7b17bfc1 [{'path': '/extra/a', 'value': 'b', 'op': 'add'}] +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-07T17:33:09.515064+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/6cfd6377-cea6-4850-a217-05efa0a59319 {} +GOT:{'uuid': '6cfd6377-cea6-4850-a217-05efa0a59319', 'created_at': '2025-02-07T17:33:10.021487+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/6cfd6377-cea6-4850-a217-05efa0a59319', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/6cfd6377-cea6-4850-a217-05efa0a59319', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/volume/targets/6cfd6377-cea6-4850-a217-05efa0a59319 {} +GOT:{'uuid': '6cfd6377-cea6-4850-a217-05efa0a59319', 'created_at': '2025-02-07T17:33:10.021487+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/6cfd6377-cea6-4850-a217-05efa0a59319', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/6cfd6377-cea6-4850-a217-05efa0a59319', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /volume/targets/6cfd6377-cea6-4850-a217-05efa0a59319 {} +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.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_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_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.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_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_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.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.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_portgroup.TestListPortgroups.test_get_collection_custom_fields +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-46f7da96-248e-4640-8549-391b1fb9d334 +Openstack-Request-Id: req-08b660e9-91d9-46f5-8eb8-9174700f8661 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 3082ab9a-852e-42b6-98a4-cfec7b17bfc1 could not be found.\", \"debuginfo\": null}"} -GET: /v1/deploy_templates/?limit=3 {} -GOT:{'deploy_templates': [{'uuid': '69c41228-d0d6-441a-8747-2c1b91b7937c', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/69c41228-d0d6-441a-8747-2c1b91b7937c', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/69c41228-d0d6-441a-8747-2c1b91b7937c', 'rel': 'bookmark'}]}, {'uuid': '72495b8c-a97a-49de-aa8d-0f23d0132206', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/72495b8c-a97a-49de-aa8d-0f23d0132206', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/72495b8c-a97a-49de-aa8d-0f23d0132206', 'rel': 'bookmark'}]}, {'uuid': 'c5414412-e4e3-4617-b2a4-9527378ddbd3', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/c5414412-e4e3-4617-b2a4-9527378ddbd3', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/c5414412-e4e3-4617-b2a4-9527378ddbd3', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=c5414412-e4e3-4617-b2a4-9527378ddbd3'} -GET: /v1/deploy_templates?fields=uuid,steps {} -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_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.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_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_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_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 -GOT:Response: 200 OK +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': '19802ea7-9495-4d75-ac31-1ec35f14f8eb', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/19802ea7-9495-4d75-ac31-1ec35f14f8eb', 'rel': 'self'}, {'href': 'http://localhost/conductors/19802ea7-9495-4d75-ac31-1ec35f14f8eb', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '89aea39e-ebba-41a7-89f4-52f99a3695dc', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/89aea39e-ebba-41a7-89f4-52f99a3695dc', 'rel': 'self'}, {'href': 'http://localhost/conductors/89aea39e-ebba-41a7-89f4-52f99a3695dc', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'c2bc6297-0fc5-4ff3-b6cd-66715ef8ce5c', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/c2bc6297-0fc5-4ff3-b6cd-66715ef8ce5c', 'rel': 'self'}, {'href': 'http://localhost/conductors/c2bc6297-0fc5-4ff3-b6cd-66715ef8ce5c', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'e4aa9949-3593-4d10-acba-d4af75d7b136', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/e4aa9949-3593-4d10-acba-d4af75d7b136', 'rel': 'self'}, {'href': 'http://localhost/conductors/e4aa9949-3593-4d10-acba-d4af75d7b136', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'fd1ec82d-7ccf-4731-885a-8758cac153b9', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/fd1ec82d-7ccf-4731-885a-8758cac153b9', 'rel': 'self'}, {'href': 'http://localhost/conductors/fd1ec82d-7ccf-4731-885a-8758cac153b9', 'rel': 'bookmark'}], 'alive': True}]} +GET: /v1/conductors?sort_key=alive {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-7a41b01a-df71-4004-a68b-e76533aa9c47 +Openstack-Request-Id: req-c470fe03-c25a-465b-8765-b038af9959d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "3621d3c5-42a3-41aa-a2a0-4c2cae45bc65", "created_at": "2024-01-06T10:56:47.137490+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/3621d3c5-42a3-41aa-a2a0-4c2cae45bc65", "rel": "self"}, {"href": "http://localhost/nodes/3621d3c5-42a3-41aa-a2a0-4c2cae45bc65", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3621d3c5-42a3-41aa-a2a0-4c2cae45bc65/ports", "rel": "self"}, {"href": "http://localhost/nodes/3621d3c5-42a3-41aa-a2a0-4c2cae45bc65/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3621d3c5-42a3-41aa-a2a0-4c2cae45bc65/states", "rel": "self"}, {"href": "http://localhost/nodes/3621d3c5-42a3-41aa-a2a0-4c2cae45bc65/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3621d3c5-42a3-41aa-a2a0-4c2cae45bc65/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3621d3c5-42a3-41aa-a2a0-4c2cae45bc65/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3621d3c5-42a3-41aa-a2a0-4c2cae45bc65/volume", "rel": "self"}, {"href": "http://localhost/nodes/3621d3c5-42a3-41aa-a2a0-4c2cae45bc65/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/7e47543d-9f48-447e-9c2e-9a7f496ffe91 [] -GOT:Response: 200 OK +{"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-aa3ff34e-9318-407e-b125-42a0a25fc554 +Openstack-Request-Id: req-b5718e09-2dbd-40d3-9a20-22bb3f7512e5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "7e47543d-9f48-447e-9c2e-9a7f496ffe91", "created_at": "2024-01-06T10:56:47.255734+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/7e47543d-9f48-447e-9c2e-9a7f496ffe91", "rel": "self"}, {"href": "http://localhost/nodes/7e47543d-9f48-447e-9c2e-9a7f496ffe91", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7e47543d-9f48-447e-9c2e-9a7f496ffe91/ports", "rel": "self"}, {"href": "http://localhost/nodes/7e47543d-9f48-447e-9c2e-9a7f496ffe91/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7e47543d-9f48-447e-9c2e-9a7f496ffe91/states", "rel": "self"}, {"href": "http://localhost/nodes/7e47543d-9f48-447e-9c2e-9a7f496ffe91/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7e47543d-9f48-447e-9c2e-9a7f496ffe91/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7e47543d-9f48-447e-9c2e-9a7f496ffe91/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7e47543d-9f48-447e-9c2e-9a7f496ffe91/volume", "rel": "self"}, {"href": "http://localhost/nodes/7e47543d-9f48-447e-9c2e-9a7f496ffe91/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\": \"The sort_key value drivers is an invalid field for sorting\", \"debuginfo\": null}"} +GET: /v1/deploy_templates/?limit=3 {} +GOT:{'deploy_templates': [{'uuid': 'd4e53fd0-525f-45a4-bec5-23db6e69664c', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/d4e53fd0-525f-45a4-bec5-23db6e69664c', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/d4e53fd0-525f-45a4-bec5-23db6e69664c', 'rel': 'bookmark'}]}, {'uuid': '721288af-cc93-470f-8bce-ffe721322205', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/721288af-cc93-470f-8bce-ffe721322205', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/721288af-cc93-470f-8bce-ffe721322205', 'rel': 'bookmark'}]}, {'uuid': 'ed23a925-ae95-41a5-9a67-060960ea2d6e', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/ed23a925-ae95-41a5-9a67-060960ea2d6e', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/ed23a925-ae95-41a5-9a67-060960ea2d6e', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=ed23a925-ae95-41a5-9a67-060960ea2d6e'} +GET: /v1/deploy_templates?fields=uuid,steps {} +GOT:{'deploy_templates': [{'uuid': '1a1fa100-9d08-455c-9673-ddd8e73a04a8', 'links': [{'href': 'http://localhost/v1/deploy_templates/1a1fa100-9d08-455c-9673-ddd8e73a04a8', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/1a1fa100-9d08-455c-9673-ddd8e73a04a8', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': 'aed3e53d-f1de-422b-8711-b40586e3fa60', 'links': [{'href': 'http://localhost/v1/deploy_templates/aed3e53d-f1de-422b-8711-b40586e3fa60', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/aed3e53d-f1de-422b-8711-b40586e3fa60', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': '8e3f0f43-c2af-4941-9ccf-6e2098e91edb', 'links': [{'href': 'http://localhost/v1/deploy_templates/8e3f0f43-c2af-4941-9ccf-6e2098e91edb', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/8e3f0f43-c2af-4941-9ccf-6e2098e91edb', '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=8e3f0f43-c2af-4941-9ccf-6e2098e91edb'} +GET: /v1/deploy_templates {} +GOT:{'deploy_templates': [{'uuid': 'dffdb294-3373-462e-8e74-cf7f768d24bf', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/dffdb294-3373-462e-8e74-cf7f768d24bf', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/dffdb294-3373-462e-8e74-cf7f768d24bf', 'rel': 'bookmark'}]}, {'uuid': '3215dfe2-cd1a-4eca-884d-c31e50858151', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/3215dfe2-cd1a-4eca-884d-c31e50858151', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/3215dfe2-cd1a-4eca-884d-c31e50858151', 'rel': 'bookmark'}]}, {'uuid': '8dbdbf40-dc27-483d-94f1-009ac0d252ac', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/8dbdbf40-dc27-483d-94f1-009ac0d252ac', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/8dbdbf40-dc27-483d-94f1-009ac0d252ac', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=8dbdbf40-dc27-483d-94f1-009ac0d252ac'} +GET: /v1/deploy_templates?detail=True {} +GOT:{'deploy_templates': [{'uuid': '1201c340-cbf6-4f29-89e9-d1ab92624fee', 'created_at': '2025-02-07T17:33:09.892411+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/1201c340-cbf6-4f29-89e9-d1ab92624fee', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/1201c340-cbf6-4f29-89e9-d1ab92624fee', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}]} +GET: /v1/deploy_templates {} +GOT:{'deploy_templates': [{'uuid': '7822e212-d0d8-4ec1-9020-2c91985a6a89', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/7822e212-d0d8-4ec1-9020-2c91985a6a89', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/7822e212-d0d8-4ec1-9020-2c91985a6a89', 'rel': 'bookmark'}]}]} +GET: /v1/deploy_templates?detail=False {} +GOT:{'deploy_templates': [{'uuid': '7822e212-d0d8-4ec1-9020-2c91985a6a89', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/7822e212-d0d8-4ec1-9020-2c91985a6a89', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/7822e212-d0d8-4ec1-9020-2c91985a6a89', 'rel': 'bookmark'}]}]} +GET: /v1/deploy_templates?sort_key=name&detail=True {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e839b1cd-ed4e-4f2c-887a-cea5137aadbd +Openstack-Request-Id: req-f5747a08-4408-449a-9310-05c235078d70 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.66 +{"uuid": "73de81b1-e329-4d6e-950c-f548572cf967", "created_at": "2025-02-07T17:33:09.446228+00:00", "updated_at": null, "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/73de81b1-e329-4d6e-950c-f548572cf967", "rel": "self"}, {"href": "http://localhost/nodes/73de81b1-e329-4d6e-950c-f548572cf967", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/73de81b1-e329-4d6e-950c-f548572cf967/ports", "rel": "self"}, {"href": "http://localhost/nodes/73de81b1-e329-4d6e-950c-f548572cf967/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/73de81b1-e329-4d6e-950c-f548572cf967/states", "rel": "self"}, {"href": "http://localhost/nodes/73de81b1-e329-4d6e-950c-f548572cf967/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/73de81b1-e329-4d6e-950c-f548572cf967/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/73de81b1-e329-4d6e-950c-f548572cf967/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/73de81b1-e329-4d6e-950c-f548572cf967/volume", "rel": "self"}, {"href": "http://localhost/nodes/73de81b1-e329-4d6e-950c-f548572cf967/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/32dbed82-40c0-4b58-9e6c-126c2fcf5327 [{'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-825e7ce6-03fb-4195-a59b-1e38209a77b3 +Openstack-Request-Id: req-d0f53921-e02f-404e-bb19-fdb798c67f99 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.62 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/632c8b03-0a89-4622-897d-a90decc1c49c [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-557942b0-de92-43ed-8696-2f8985daaa23 +Openstack-Request-Id: req-80011489-b636-4308-b746-9da8df88cd62 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.66 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid network_data: 'links' is a required property \", \"debuginfo\": null}"} +PATCH: /v1/nodes/f618d159-d5fa-4d30-aa77-826c67a6ff68 [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] +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.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_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_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_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.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.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_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_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_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_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_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one ... 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-4e615c71-f25a-431a-8443-1fef6cd48ecc +Openstack-Request-Id: req-fd444e98-1db8-4b8a-bfc4-998b8739966d 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'}] -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 -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.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_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_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.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 -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions ... 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_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.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.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.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.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_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 -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] -GOT:Response: 200 OK +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-5d00c02e-aa29-4548-8fa1-3524aa2feee2 +Openstack-Request-Id: req-fd444e98-1db8-4b8a-bfc4-998b8739966d 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-06T10:56:46.855086+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'}] -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: 200 OK Content-Type: application/json -Openstack-Request-Id: req-940f6e71-decb-46fb-82d3-6ea99f35ab45 +Openstack-Request-Id: req-3f5335a9-da68-4513-871f-4d8ee22c6a8f X-Openstack-Ironic-Api-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'}] -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 +{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:10.309152+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-07T17:33:10.312872+00:00", "updated_at": "2025-02-07T17:33:10.317786+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": "27ff4717-cc76-49c2-b9fd-4f5e6f14e5c1", "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": "27ff4717-cc76-49c2-b9fd-4f5e6f14e5c1", "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-07T17:33:10.336189+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-01f9107c-b097-4f0f-b4d3-c6a19eaf6a2b +Openstack-Request-Id: req-3f5335a9-da68-4513-871f-4d8ee22c6a8f 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-06T10:56:47.024311+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'}] +{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:10.309152+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-07T17:33:10.312872+00:00", "updated_at": "2025-02-07T17:33:10.317786+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": "27ff4717-cc76-49c2-b9fd-4f5e6f14e5c1", "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": "27ff4717-cc76-49c2-b9fd-4f5e6f14e5c1", "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-07T17:33:10.336189+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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.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_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_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: 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 -Content-Type: application/json -Openstack-Request-Id: req-bda5e874-5eac-4cbb-8ba4-20bae8262868 +Openstack-Request-Id: req-a32d06a2-dcdb-412b-8b35-7dd0382e7abb 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-06T10:56:47.148238+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-fc7894ee-aabd-477d-9059-4a55218ca497 +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': 'bios'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-f4015fa8-eb61-4448-bd4f-b164b6c69073 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-06T10:56:47.202942+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 +X-Openstack-Ironic-Api-Version: 1.76 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'unsupported-efi'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6e1848d6-9a3f-4b80-9acc-3caea05059b3 +Openstack-Request-Id: req-0316522a-967d-4841-ae86-e38fedcc6a02 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": "2024-01-06T10:56:47.284944+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 +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-01d5586d-7945-4a89-ac8c-bcdcdaf408b5 +Openstack-Request-Id: req-c4dfdeae-8845-4be3-a301-6ec37fff5bc7 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 -Content-Type: application/json -Openstack-Request-Id: req-a7b413a1-aa12-4729-8577-79ab30baef29 +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-3458ac25-6c5d-4af5-a014-aa9c0efeb553 X-Openstack-Ironic-Api-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/7385f68d-be0d-4797-badb-6445d14caafe [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -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.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.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.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_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_portgroup.TestPatch.test_update_portgroup_address_normalized -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized ... 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.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.TestCheckListPolicy.test_check_list_policy -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy ... 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_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.TestPatch.test_patch_volume_connectors_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource ... 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.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_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_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_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_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_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.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.cmd.test_dbsync.OnlineMigrationTestCase.test_check_versions_bad -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_versions_bad ... 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_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.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_utils.TestCheckAllowFields.test_allow_inspect_abort -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inspect_abort ... 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_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_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_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.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_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 -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 -Openstack-Request-Id: req-ce56ef10-aaa8-41db-a178-ea87e097c29b +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-46408efb-261f-428e-8950-6cc44fe698a8 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.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 -Openstack-Request-Id: req-59cabca2-f456-4aab-b482-a9c4935836f3 +Openstack-Request-Id: req-d714f1b1-9812-4c9f-8558-39ab237921d4 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-aedb9f2b-2ccf-4a8b-a895-bb8448b141a5 +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-6cf73cc9-6f91-4457-94ad-5b5ae6fb2485 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-06T10:56:47.482133+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 +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 Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-cbd7bdda-7d2a-48dd-baf5-6f43a4dd18a8 +Openstack-Request-Id: req-9200f795-df15-4e0d-b493-8a6411de52a3 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-06T10:56:47.554556+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 +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 -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-f62d89c7-0a65-4bca-b432-38192c445b95 +Openstack-Request-Id: req-c345c582-9e23-41be-ace7-2554b79ca26a 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-06T10:56:47.632453+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-5f5ad250-87b4-4c9e-a8c1-75d714f3572d +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-8dcfae7c-03c4-4321-a6b1-112cd3036f21 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-06T10:56:47.698166+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 +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-e8f1614e-f783-472c-b033-8b212db54fed +Openstack-Request-Id: req-10b75361-b511-4321-a48d-088b760456a4 X-Openstack-Ironic-Api-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}"} -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_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_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.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_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_args.ValidateDecoratorTest.test_boolean -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_boolean ... 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.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_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.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_glance_service.TestGlanceSerializer.test_serialize -ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize ... 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_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_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_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_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_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.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.TestPatch.test_patch_volume_targets_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_targets_subresource ... 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.common.test_neutron.TestValidateNetwork.test_by_name -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name ... 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_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_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_port.TestPost.test_create_port_portgroup -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup ... 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_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_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_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_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.TestValidateNetwork.test_duplicate -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate ... 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_node.TestListNodes.test_get_lessee_field -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_lessee_field ... 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.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.common.test_neutron.TestValidateNetwork.test_failure -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure ... 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.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.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.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.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.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.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_port.TestPatch.test_invalid_physnet_too_long -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_too_long ... ok -GOT:{'nodes': [{'uuid': 'd8e88311-6249-441e-8b44-1a6d9ffc46a4', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/d8e88311-6249-441e-8b44-1a6d9ffc46a4', 'rel': 'self'}, {'href': 'http://localhost/nodes/d8e88311-6249-441e-8b44-1a6d9ffc46a4', 'rel': 'bookmark'}]}, {'uuid': 'c754bbbf-1ac3-4d57-8121-33d4e5b21737', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/c754bbbf-1ac3-4d57-8121-33d4e5b21737', 'rel': 'self'}, {'href': 'http://localhost/nodes/c754bbbf-1ac3-4d57-8121-33d4e5b21737', 'rel': 'bookmark'}]}, {'uuid': '8d10852f-8440-4956-b5a5-086c4d2af577', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/8d10852f-8440-4956-b5a5-086c4d2af577', 'rel': 'self'}, {'href': 'http://localhost/nodes/8d10852f-8440-4956-b5a5-086c4d2af577', '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': 'ab3cd1b6-d63f-4b1b-9cf7-a3dcef151c3d', 'power_state': None, 'target_power_state': None, 'provision_state': 'available', 'target_provision_state': None, 'last_error': None, 'maintenance': False, 'instance_uuid': 'b318786f-26f2-43a1-aac8-96210098d721', 'traits': ['CUSTOM_RAID5', 'CUSTOM_TRAIT1'], 'resource_class': None, 'links': [{'href': 'http://localhost/v1/nodes/ab3cd1b6-d63f-4b1b-9cf7-a3dcef151c3d', 'rel': 'self'}, {'href': 'http://localhost/nodes/ab3cd1b6-d63f-4b1b-9cf7-a3dcef151c3d', 'rel': 'bookmark'}]}, {'uuid': '98a5d73f-79c5-4fba-b64d-c85166d5fccd', 'power_state': None, 'target_power_state': None, 'provision_state': 'available', 'target_provision_state': None, 'last_error': None, 'maintenance': False, 'instance_uuid': '7183560b-86da-468a-ac42-75f1c7ae9de1', 'traits': ['CUSTOM_RAID5', 'CUSTOM_TRAIT1'], 'resource_class': None, 'links': [{'href': 'http://localhost/v1/nodes/98a5d73f-79c5-4fba-b64d-c85166d5fccd', 'rel': 'self'}, {'href': 'http://localhost/nodes/98a5d73f-79c5-4fba-b64d-c85166d5fccd', 'rel': 'bookmark'}]}, {'uuid': 'ad6c2ab6-4d07-434a-9b49-f6ba5186d7e9', 'power_state': None, 'target_power_state': None, 'provision_state': 'available', 'target_provision_state': None, 'last_error': None, 'maintenance': False, 'instance_uuid': '287bab22-84d2-41c3-b0c0-7724957cc705', 'traits': ['CUSTOM_RAID5', 'CUSTOM_TRAIT1'], 'resource_class': None, 'links': [{'href': 'http://localhost/v1/nodes/ad6c2ab6-4d07-434a-9b49-f6ba5186d7e9', 'rel': 'self'}, {'href': 'http://localhost/nodes/ad6c2ab6-4d07-434a-9b49-f6ba5186d7e9', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?fields=name&limit=2 {} -GOT:{'nodes': [{'name': None, 'links': [{'href': 'http://localhost/v1/nodes/503addeb-737d-47aa-a096-be5bde25f765', 'rel': 'self'}, {'href': 'http://localhost/nodes/503addeb-737d-47aa-a096-be5bde25f765', 'rel': 'bookmark'}]}, {'name': None, 'links': [{'href': 'http://localhost/v1/nodes/1e355014-3664-41c1-9b0e-e6b1d52ed978', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e355014-3664-41c1-9b0e-e6b1d52ed978', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=1e355014-3664-41c1-9b0e-e6b1d52ed978'} -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 +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-7e6f8616-d110-4880-8783-b847f25ab94f +Openstack-Request-Id: req-5551b22f-5b00-419c-a55f-353971d36445 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.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-9dee5764-f2c1-4618-a902-f56db7b1f445 +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 Content-Type: application/json -Openstack-Request-Id: req-8c04216e-4f01-44d3-91a4-cc9e3ac3abe1 +Openstack-Request-Id: req-9bbca9fc-b2a5-457f-be7b-e0e97d02a149 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.40 {"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 +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'manageable'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-0e484167-01d1-4340-af39-cfb68245b933 +Openstack-Request-Id: req-a31aa405-bc18-4afe-be9c-5ee7ed7cf282 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 +{"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-342d22c6-6e7c-49a2-a1d7-df152d960f24 +Openstack-Request-Id: req-5416ac37-9749-4f34-81f9-25c4358def1b 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 +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'} +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_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_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_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.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.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.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_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_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_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.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_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.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.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_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_driver_factory.DefaultInterfaceTestCase.test_check_exception_IncompatibleInterface +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_check_exception_IncompatibleInterface ... 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.api.controllers.v1.test_node.TestPatch.test_update_ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-5c694690-98ab-4f86-ae69-5b91c3ec463c +Openstack-Request-Id: req-3f9e82dc-a5fd-4664-8ad4-7bd4e9dd9678 X-Openstack-Ironic-Api-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-c02d7f33c781", "created_at": "2025-02-07T17:33:08.377292+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-8a56f54b-45c1-4c92-86ce-f77c6a0d708d +Openstack-Request-Id: req-47175c78-ee54-4b26-b4e4-8c454a4c0e98 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.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_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_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_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.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_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_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_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_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.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.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.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 -GOT:{'deploy_templates': [{'uuid': '2ffe1e22-f3aa-49a8-954a-99c5109e0593', 'links': [{'href': 'http://localhost/v1/deploy_templates/2ffe1e22-f3aa-49a8-954a-99c5109e0593', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/2ffe1e22-f3aa-49a8-954a-99c5109e0593', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': '10c61162-c9ee-43fd-810a-95911baedffe', 'links': [{'href': 'http://localhost/v1/deploy_templates/10c61162-c9ee-43fd-810a-95911baedffe', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/10c61162-c9ee-43fd-810a-95911baedffe', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': '830ff2b5-04b9-4d19-a225-ba820fea8713', 'links': [{'href': 'http://localhost/v1/deploy_templates/830ff2b5-04b9-4d19-a225-ba820fea8713', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/830ff2b5-04b9-4d19-a225-ba820fea8713', '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=830ff2b5-04b9-4d19-a225-ba820fea8713'} -GET: /v1/deploy_templates {} -GOT:{'deploy_templates': [{'uuid': 'e22d255f-db29-41f1-b284-b57fc230a1c8', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/e22d255f-db29-41f1-b284-b57fc230a1c8', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/e22d255f-db29-41f1-b284-b57fc230a1c8', 'rel': 'bookmark'}]}, {'uuid': '002e7012-3975-42e0-87e0-952bbe6b4576', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/002e7012-3975-42e0-87e0-952bbe6b4576', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/002e7012-3975-42e0-87e0-952bbe6b4576', 'rel': 'bookmark'}]}, {'uuid': '3f5af582-ee29-421e-b087-1c6a4bad445f', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/3f5af582-ee29-421e-b087-1c6a4bad445f', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/3f5af582-ee29-421e-b087-1c6a4bad445f', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=3f5af582-ee29-421e-b087-1c6a4bad445f'} -GET: /v1/deploy_templates?detail=True {} -GOT:{'deploy_templates': [{'uuid': '7d4bb478-4714-4de7-bdfc-6323ca93bbfa', 'created_at': '2024-01-06T10:56:47.727364+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/7d4bb478-4714-4de7-bdfc-6323ca93bbfa', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/7d4bb478-4714-4de7-bdfc-6323ca93bbfa', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}]} -GET: /v1/deploy_templates {} -GOT:{'deploy_templates': [{'uuid': '55840468-70d4-4e70-a465-3d9cda1957cd', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/55840468-70d4-4e70-a465-3d9cda1957cd', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/55840468-70d4-4e70-a465-3d9cda1957cd', 'rel': 'bookmark'}]}]} -GET: /v1/deploy_templates?detail=False {} -GOT:{'deploy_templates': [{'uuid': '55840468-70d4-4e70-a465-3d9cda1957cd', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/55840468-70d4-4e70-a465-3d9cda1957cd', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/55840468-70d4-4e70-a465-3d9cda1957cd', 'rel': 'bookmark'}]}]} -GET: /v1/deploy_templates?sort_key=name&detail=True {} -GOT:{'deploy_templates': [{'uuid': 'a7ecf187-170a-4248-bf5b-6c2f7ea2911e', 'created_at': '2024-01-06T10:56:47.820145+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/a7ecf187-170a-4248-bf5b-6c2f7ea2911e', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/a7ecf187-170a-4248-bf5b-6c2f7ea2911e', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': '99bfa063-ad8a-4b20-9283-dab137c7817b', 'created_at': '2024-01-06T10:56:47.817941+00:00', 'updated_at': None, 'name': 'CUSTOM_DT2', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/99bfa063-ad8a-4b20-9283-dab137c7817b', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/99bfa063-ad8a-4b20-9283-dab137c7817b', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': '3374b950-fa39-4771-b2a9-341b8c57d100', 'created_at': '2024-01-06T10:56:47.815464+00:00', 'updated_at': None, 'name': 'CUSTOM_DT3', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/3374b950-fa39-4771-b2a9-341b8c57d100', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/3374b950-fa39-4771-b2a9-341b8c57d100', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}]} -GET: /v1/deploy_templates?detail=True&fields=name {} +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-84033d5b-cf9f-4432-93b3-d8652b8604d3 +Openstack-Request-Id: req-a3d4bc2d-2ea8-4c7a-89dc-2e4114ff8d9e X-Openstack-Ironic-Api-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/d32a1821-8d81-4f61-8ade-4b2d5e2f4905', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/d32a1821-8d81-4f61-8ade-4b2d5e2f4905', '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 +{"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 -{"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': '1b5164a5-d52b-4fac-a368-0fdc4dd5a168', 'links': [{'href': 'http://localhost/v1/deploy_templates/1b5164a5-d52b-4fac-a368-0fdc4dd5a168', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/1b5164a5-d52b-4fac-a368-0fdc4dd5a168', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': 'd31d1d00-d0bf-4254-8a39-c2ebde030e56', 'links': [{'href': 'http://localhost/v1/deploy_templates/d31d1d00-d0bf-4254-8a39-c2ebde030e56', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/d31d1d00-d0bf-4254-8a39-c2ebde030e56', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': '0cd713c4-0754-454f-aab8-2c7b9589fd81', 'links': [{'href': 'http://localhost/v1/deploy_templates/0cd713c4-0754-454f-aab8-2c7b9589fd81', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/0cd713c4-0754-454f-aab8-2c7b9589fd81', '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_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.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_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.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_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_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.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.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_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.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_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_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.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.ValidateDecoratorTest.test_integer -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_integer ... 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_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.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.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.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_deploy_template.TestListDeployTemplates.test_get_one -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one ... 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_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.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_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.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.common.test_args.ValidateDecoratorTest.test_mandatory -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mandatory ... ok +Openstack-Request-Id: req-db5b7734-3bd0-4ef7-82bc-560b7b6fd61c +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-07T17:33:09.114976+00:00", "updated_at": "2025-02-07T17:33:09.122191+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-12b39c74-01f1-4fb2-ac6d-65be969c6a67 +Openstack-Request-Id: req-b791597a-87b8-4b06-9253-b1115ba19bf7 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": "2024-01-06T10:56:47.314409+00:00", "updated_at": "2024-01-06T10:56:47.334438+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 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:09.114976+00:00", "updated_at": "2025-02-07T17:33:09.122191+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-dfea45eb-71a0-444f-aaea-6bd31e570bad +Openstack-Request-Id: req-8d28876d-0b7b-44e3-9284-cf8834b18854 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': 'physnet1', 'op': 'add'}] -GOT:Response: 406 Not Acceptable +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'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6ce95815-0975-4771-a169-556742076c51 +Openstack-Request-Id: req-de8bed28-f550-4951-826c-6ca6cfcb4f6c 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': '390d63c8-e55d-4697-b65a-b517f88660e4', 'op': 'add'}] -GOT:Response: 200 OK +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-97be6b05-81e5-4638-9a86-eb0029957ecc +Openstack-Request-Id: req-a75952d9-4885-4fa0-89ce-cb09ea04a604 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": "2024-01-06T10:56:47.686528+00:00", "updated_at": "2024-01-06T10:56:47.709866+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": "390d63c8-e55d-4697-b65a-b517f88660e4"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'add'}] -GOT:Response: 200 OK +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-a3083ce7-cde6-4c60-9d39-4ebcade29a2f +Openstack-Request-Id: req-aa5b3f3b-a8da-4801-b760-a529a51ff66c 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": "2024-01-06T10:56:47.754451+00:00", "updated_at": "2024-01-06T10:56:47.774518+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'}] +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-705ce32e-93be-4747-93f3-8deb55fc4bad +Openstack-Request-Id: req-a3f4c9f2-56ee-4739-8f5c-a725e7902c73 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 +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-7452758d-6710-4fba-9cd5-60d9eb804185 +Openstack-Request-Id: req-c4f40836-0cf2-491d-87d7-805ebf6465d3 X-Openstack-Ironic-Api-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'}] +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:10.487117+00:00", "updated_at": "2025-02-07T17:33:10.491135+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-1e3369bf-b22d-492d-a6c6-6563af83fa58 +Openstack-Request-Id: req-551adabb-2fe2-4ec4-945a-1fe4d0f40786 X-Openstack-Ironic-Api-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'}] +{"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: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-46e36832-03e7-4840-9015-3408d7c13364 +Openstack-Request-Id: req-170805b3-1519-4952-9e1e-a3c08f0f3a04 X-Openstack-Ironic-Api-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/7a91b38c-ec6c-4cae-8112-3c30df0d2996 [{'path': '/address', 'value': '00:00:00:00:00:00', 'op': 'replace'}] +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/4b507c64-221e-46b8-b103-030ea1eaeeb0 [{'path': '/address', 'value': '00:00:00:00:00:00', 'op': 'replace'}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f71527b2-e049-4f73-8ee5-3d3c258f206c +Openstack-Request-Id: req-7f91f89f-a20c-4935-ba47-623f16fc8d6b 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/0891a04d-a5fc-4c7c-8a7d-4a01f599c629 [{'path': '/local_link_connection/network_type', 'op': 'remove'}] +PATCH: /v1/ports/f8dc960b-866d-4643-84d7-b4bf8e164a4a [{'path': '/local_link_connection/network_type', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-de18f89a-987c-4837-9903-87035f1f37d5 +Openstack-Request-Id: req-862bda78-eefa-47c7-a964-ec690537717f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.64 -{"uuid": "0891a04d-a5fc-4c7c-8a7d-4a01f599c629", "created_at": "2024-01-06T10:56:48.088562+00:00", "updated_at": "2024-01-06T10:56:48.106986+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/0891a04d-a5fc-4c7c-8a7d-4a01f599c629", "rel": "self"}, {"href": "http://localhost/ports/0891a04d-a5fc-4c7c-8a7d-4a01f599c629", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +{"uuid": "f8dc960b-866d-4643-84d7-b4bf8e164a4a", "created_at": "2025-02-07T17:33:08.630697+00:00", "updated_at": "2025-02-07T17:33:08.654998+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/f8dc960b-866d-4643-84d7-b4bf8e164a4a", "rel": "self"}, {"href": "http://localhost/ports/f8dc960b-866d-4643-84d7-b4bf8e164a4a", "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-71d42275-ebce-4346-9256-a7273db9103f +Openstack-Request-Id: req-585724a8-0736-43f2-871a-f10e6a5c22c9 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}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/local_link_connection/switch_id', 'op': 'remove'}] -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.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.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.TestCheckAllowFields.test_allow_portgroups -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups ... 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_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_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.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.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_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_args.ValidateDecoratorTest.test_name -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_name ... 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_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_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.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.controllers.v1.test_utils.TestCheckAllowFields.test_allow_ramdisk_endpoints -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_ramdisk_endpoints ... ok -GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T10:56:47.524610+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-85e3e3bd-56f4-4f03-8cd0-a04b3143a05d +Openstack-Request-Id: req-5d73f8c2-52cc-4356-9538-8aeaaec67ded X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.14 +X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -GET: /v1/ports?fields=uuid,extra {} -GOT:{'ports': [{'uuid': 'ec64777d-8716-4843-919a-91502afb6f6c', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/ec64777d-8716-4843-919a-91502afb6f6c', 'rel': 'self'}, {'href': 'http://localhost/ports/ec64777d-8716-4843-919a-91502afb6f6c', 'rel': 'bookmark'}]}, {'uuid': '58134835-e4f6-4588-8474-0dd51409cc30', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/58134835-e4f6-4588-8474-0dd51409cc30', 'rel': 'self'}, {'href': 'http://localhost/ports/58134835-e4f6-4588-8474-0dd51409cc30', 'rel': 'bookmark'}]}, {'uuid': '5afda268-4a7e-4dc7-ab02-3c291df53ce1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/5afda268-4a7e-4dc7-ab02-3c291df53ce1', 'rel': 'self'}, {'href': 'http://localhost/ports/5afda268-4a7e-4dc7-ab02-3c291df53ce1', 'rel': 'bookmark'}]}]} -GET: /v1/ports?fields=address&limit=2 {} -GOT:{'ports': [{'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/70af179f-14cc-4ea3-81f5-e6e19bd69f8e', 'rel': 'self'}, {'href': 'http://localhost/ports/70af179f-14cc-4ea3-81f5-e6e19bd69f8e', 'rel': 'bookmark'}]}, {'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/0e6e537b-b0f0-432b-bd75-45b2ba8b66e7', 'rel': 'self'}, {'href': 'http://localhost/ports/0e6e537b-b0f0-432b-bd75-45b2ba8b66e7', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=0e6e537b-b0f0-432b-bd75-45b2ba8b66e7'} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra {} -GOT:Response: 406 Not Acceptable +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-93e717a9-cc58-46f6-8189-1f8c9727c47f +Openstack-Request-Id: req-31f054a1-448c-41b1-b8f2-503fad15fc66 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 {} +{"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-6341b3be-f26d-4759-97d0-08dd61a85e05 +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-07T17:33:09.419944+00:00", "updated_at": "2025-02-07T17:33:09.451037+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-7dc322c4-5749-4174-9031-12f7f029dae2 +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-07T17:33:09.419944+00:00", "updated_at": "2025-02-07T17:33:09.471307+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-06740093-13a6-4ed2-9a60-8cde56bb7df5 +Openstack-Request-Id: req-ffb37147-bdc0-4e50-b7e1-5c3321568891 X-Openstack-Ironic-Api-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 +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-e632aab2-26fc-4d79-8de5-285835701d3d +Openstack-Request-Id: req-63e90282-4831-48e2-aa14-11cef9047f99 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 {} +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-50f51968-9058-4e3b-a3f3-dc9ebe464abe +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-07T17:33:09.978395+00:00", "updated_at": "2025-02-07T17:33:09.999544+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-8e0ce497-4fb1-4ad4-aad2-d4ebac120f24 +Openstack-Request-Id: req-f732d1fb-eb24-493d-a1ee-14ec7245536e 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 {} +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-35927464-4be1-43ce-8e63-f159e293accb +Openstack-Request-Id: req-aa22eb81-4fe4-4a40-9d9c-74bd3c7876b4 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-06T10:56:48.070574+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-06T10:56:48.180433+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-06T10:56:48.232419+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.common.test_args.ValidateDecoratorTest.test_or -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_or ... 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_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.TestCheckAllowFields.test_allow_remove_chassis_uuid -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_remove_chassis_uuid ... ok -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string ... 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_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_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.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_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_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_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.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_args.ValidateDecoratorTest.test_string_list -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string_list ... 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.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.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.common.test_args.ValidateDecoratorTest.test_unexpected_args -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_unexpected_args ... 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_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_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.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.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.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.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_args.ValidateDecoratorTest.test_uuid -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid ... 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.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_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_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.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.common.test_args.ValidateDecoratorTest.test_uuid_or_name -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid_or_name ... 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.TestCheckAllowFields.test_allow_volume -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_volume ... 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.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_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_links -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_links ... 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.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_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.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.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_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.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_get_nodes_by_conductor_group -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group ... 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.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.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_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_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.TestPatch.test_remove_mandatory_field -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_mandatory_field ... 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_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.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.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.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_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.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task ... 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_deploy_template.TestListDeployTemplates.test_empty +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_empty ... ok +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-a8c79f7e-76fb-4453-82c4-e83eeac8851b +Openstack-Request-Id: req-5757e8d1-53ad-497a-b1ab-2428348d5701 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-06T10:56:47.825354+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 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:08.716768+00:00", "updated_at": "2025-02-07T17:33:08.721450+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 -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-7a957cc0-cd19-4730-a186-ab720a8ca68e +Openstack-Request-Id: req-62f48d17-213a-4247-a6bf-ded4916b35b0 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-06T10:56:47.902122+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': '4575c655-fa50-4a45-be09-756d21cb74b6', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +{"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-9090b8f0-a6a1-42ff-894d-45cb7edc5d5f +Openstack-Request-Id: req-7385a9da-6432-48e1-ab71-0ddf5c6d873c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 4575c655-fa50-4a45-be09-756d21cb74b6 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-38a75326-6e57-4558-9f06-1dacf2dd76b3 -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'} +{"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-f78887de-abd3-4319-b468-d2f286b895be +Openstack-Request-Id: req-6347793b-60d1-4b2d-8eba-00616077fd79 X-Openstack-Ironic-Api-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 +{"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-416b801e-a079-4254-9686-0607743ae9c3 +Openstack-Request-Id: req-139afb11-40e2-4df7-803b-c2f7ed6a5d32 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 +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 -Openstack-Request-Id: req-d455dc93-a314-4d0b-95d1-4f3b76ce24c2 +Openstack-Request-Id: req-5e02cc27-0921-466e-b65e-7829f6821e83 X-Openstack-Ironic-Api-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'} -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.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.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_one -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_one ... 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 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:09.818671+00:00", "updated_at": "2025-02-07T17:33:09.822926+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-1ee6018b-8d1f-4b62-847c-4016e8089ed9 +Openstack-Request-Id: req-25dc02c1-3497-48fe-a81e-056282a87f95 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': '2cb4868a-38e2-4c4c-ae70-662422db914a', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/2cb4868a-38e2-4c4c-ae70-662422db914a', 'rel': 'self'}, {'href': 'http://localhost/nodes/2cb4868a-38e2-4c4c-ae70-662422db914a', 'rel': 'bookmark'}]}, {'uuid': '810ded40-324d-42ab-b8b3-4749ed2c989e', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/810ded40-324d-42ab-b8b3-4749ed2c989e', 'rel': 'self'}, {'href': 'http://localhost/nodes/810ded40-324d-42ab-b8b3-4749ed2c989e', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?conductor=fake.conductor {} -GOT:{'nodes': [{'uuid': '810ded40-324d-42ab-b8b3-4749ed2c989e', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/810ded40-324d-42ab-b8b3-4749ed2c989e', 'rel': 'self'}, {'href': 'http://localhost/nodes/810ded40-324d-42ab-b8b3-4749ed2c989e', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?conductor_group=group1 {} -GOT:{'nodes': [{'uuid': '06f7e64f-9c66-4e51-b53b-af030b2ea2b2', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/06f7e64f-9c66-4e51-b53b-af030b2ea2b2', 'rel': 'self'}, {'href': 'http://localhost/nodes/06f7e64f-9c66-4e51-b53b-af030b2ea2b2', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?conductor_group=group2 {} -GOT:{'nodes': [{'uuid': 'c8e0eeb2-22a3-4c8a-a121-bc3f547484d7', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/c8e0eeb2-22a3-4c8a-a121-bc3f547484d7', 'rel': 'self'}, {'href': 'http://localhost/nodes/c8e0eeb2-22a3-4c8a-a121-bc3f547484d7', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?conductor_group=group1 {} -GOT:{'nodes': [{'uuid': '06f7e64f-9c66-4e51-b53b-af030b2ea2b2', 'created_at': '2024-01-06T10:56:48.164948+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/06f7e64f-9c66-4e51-b53b-af030b2ea2b2', 'rel': 'self'}, {'href': 'http://localhost/nodes/06f7e64f-9c66-4e51-b53b-af030b2ea2b2', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/06f7e64f-9c66-4e51-b53b-af030b2ea2b2/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/06f7e64f-9c66-4e51-b53b-af030b2ea2b2/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/06f7e64f-9c66-4e51-b53b-af030b2ea2b2/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/06f7e64f-9c66-4e51-b53b-af030b2ea2b2/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/06f7e64f-9c66-4e51-b53b-af030b2ea2b2/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/06f7e64f-9c66-4e51-b53b-af030b2ea2b2/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/06f7e64f-9c66-4e51-b53b-af030b2ea2b2/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/06f7e64f-9c66-4e51-b53b-af030b2ea2b2/volume', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?conductor_group=group2 {} -GOT:{'nodes': [{'uuid': 'c8e0eeb2-22a3-4c8a-a121-bc3f547484d7', 'created_at': '2024-01-06T10:56:48.169652+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/c8e0eeb2-22a3-4c8a-a121-bc3f547484d7', 'rel': 'self'}, {'href': 'http://localhost/nodes/c8e0eeb2-22a3-4c8a-a121-bc3f547484d7', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/c8e0eeb2-22a3-4c8a-a121-bc3f547484d7/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c8e0eeb2-22a3-4c8a-a121-bc3f547484d7/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/c8e0eeb2-22a3-4c8a-a121-bc3f547484d7/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/c8e0eeb2-22a3-4c8a-a121-bc3f547484d7/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/c8e0eeb2-22a3-4c8a-a121-bc3f547484d7/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/c8e0eeb2-22a3-4c8a-a121-bc3f547484d7/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/c8e0eeb2-22a3-4c8a-a121-bc3f547484d7/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/c8e0eeb2-22a3-4c8a-a121-bc3f547484d7/volume', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?conductor_group=group1 {} -GOT:Response: 406 Not Acceptable +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-b28574d4-32da-4fd2-8445-35d43915b60a +Openstack-Request-Id: req-0371235d-f3d9-4e5c-a14f-c8be89631a72 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_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.TestCheckAllowFields.test_check_allow_clean_verbs -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs ... ok +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:10.251427+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-0b9f3183-a26a-449b-9faf-a564d6f3cc8d +Openstack-Request-Id: req-8477d4b3-cf9c-47a5-9e04-bba535551cc4 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'}] -GOT:Response: 400 Bad Request +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-0d067835-651b-4281-8153-913e8176949b +Openstack-Request-Id: req-cec5fc27-93fd-40a9-a33d-e5f5241cd12e 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.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:10.620526+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.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_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_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_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_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.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.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.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_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.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config ... 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_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.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_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.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_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_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.TestPatch.test_update_ok_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name ... 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.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.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped ... 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.TestPatch.test_update_byid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid ... 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_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_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_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.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.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good ... 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.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_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_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_replace_singular +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular ... 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.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.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_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.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.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_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_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_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_byid +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_byid ... 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.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_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_by_name_unsupported +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported ... 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.controllers.v1.test_node.TestListNodes.test_empty +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty ... 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-8442b74e-e8d7-4256-b923-da1cb58bc296 +Openstack-Request-Id: req-c6338131-9081-47a9-b5ee-69638e0a10e7 X-Openstack-Ironic-Api-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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:10.775890+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-d958a66c-e19d-4e70-9a90-a10aea9a3949 +Openstack-Request-Id: req-c6338131-9081-47a9-b5ee-69638e0a10e7 X-Openstack-Ironic-Api-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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:10.775890+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-8adcb627-3cc1-4d89-b1e6-c98371289910 +Openstack-Request-Id: req-54f2a52c-ab6a-44ab-ba45-c20bc3020513 X-Openstack-Ironic-Api-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'}] -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-23dd5034-2306-4429-b9d3-c0236f7df182 +Openstack-Request-Id: req-54f2a52c-ab6a-44ab-ba45-c20bc3020513 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'}] +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.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-62cd0df3-57c4-4d4c-92f0-65b73d9aeee7 +Openstack-Request-Id: req-9d53dc26-b321-4145-bb74-1e5a522a6e9f 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": "2024-01-06T10:56:47.974607+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.80 +{"uuid": "f618d159-d5fa-4d30-aa77-826c67a6ff68", "created_at": "2025-02-07T17:33:10.131660+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/f618d159-d5fa-4d30-aa77-826c67a6ff68", "rel": "self"}, {"href": "http://localhost/nodes/f618d159-d5fa-4d30-aa77-826c67a6ff68", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f618d159-d5fa-4d30-aa77-826c67a6ff68/ports", "rel": "self"}, {"href": "http://localhost/nodes/f618d159-d5fa-4d30-aa77-826c67a6ff68/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f618d159-d5fa-4d30-aa77-826c67a6ff68/states", "rel": "self"}, {"href": "http://localhost/nodes/f618d159-d5fa-4d30-aa77-826c67a6ff68/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f618d159-d5fa-4d30-aa77-826c67a6ff68/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f618d159-d5fa-4d30-aa77-826c67a6ff68/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f618d159-d5fa-4d30-aa77-826c67a6ff68/volume", "rel": "self"}, {"href": "http://localhost/nodes/f618d159-d5fa-4d30-aa77-826c67a6ff68/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/d334e835-be84-4716-a7f6-350487aabedc [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-e54924cc-2e2d-4702-97d5-34b58f581b19 +Openstack-Request-Id: req-efb84bf4-909f-4739-b7ee-c2a199c717e2 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.15 {"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 +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-959f54b6-b4a3-49ec-a142-727e41068fbb +Openstack-Request-Id: req-82c88e33-f6e8-4078-b587-a628ae7db328 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'}] -GOT:Response: 400 Bad Request +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:10.701890+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-87012422-c860-4fdd-937d-967e79bd2628 +Openstack-Request-Id: req-a20ff5f0-6bb0-40a6-a4a6-b9d59d895a3d 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'}] -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_port.TestPatch.test_remove_physical_network -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network ... 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.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay ... 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.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.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_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_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_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.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.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_utils.TestApiUtils.test_validate_limit -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit ... 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_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_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.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.TestApiUtils.test_validate_sort_dir -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir ... 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.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 +X-Openstack-Ironic-Api-Version: 1.5 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:10.991889+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-761aa975-0496-485e-8b19-9c2015196b4e +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-07T17:33:11.384415+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/85d9d360-4f76-4a49-bfd7-d4571add96d4 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] +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.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.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.TestPatch.test_update_owner +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner ... 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.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.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.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.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.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 -GOT:{'deploy_templates': [{'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/7a49a9db-2989-4ca2-bf98-54fd45074fcd', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/7a49a9db-2989-4ca2-bf98-54fd45074fcd', 'rel': 'bookmark'}]}, {'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/b40faa12-7537-43cb-bed5-7eb34b75f300', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/b40faa12-7537-43cb-bed5-7eb34b75f300', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=b40faa12-7537-43cb-bed5-7eb34b75f300'} -GET: /v1/deploy_templates/8d59c1fc-d00e-4351-935b-f4ef42a3f528?fields=uuid,spongebob {} +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_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.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_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_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_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_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_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.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check +ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check ... 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.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.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties +ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties ... ok +GOT:{'portgroups': [{'uuid': '6d9b8b70-7b4b-41f2-ab36-4c4494a54e45', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/6d9b8b70-7b4b-41f2-ab36-4c4494a54e45', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6d9b8b70-7b4b-41f2-ab36-4c4494a54e45', 'rel': 'bookmark'}]}, {'uuid': 'ffe43fdd-bc30-4f85-89a5-822b80277ed4', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/ffe43fdd-bc30-4f85-89a5-822b80277ed4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/ffe43fdd-bc30-4f85-89a5-822b80277ed4', 'rel': 'bookmark'}]}, {'uuid': 'c152063d-3a55-47d7-ae72-526603795bc5', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/c152063d-3a55-47d7-ae72-526603795bc5', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c152063d-3a55-47d7-ae72-526603795bc5', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups/detail?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2025-02-07T17:33:09.781749+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': '2973ce70-222a-4e91-8322-cc552c38fbcb', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/2973ce70-222a-4e91-8322-cc552c38fbcb', 'rel': 'self'}, {'href': 'http://localhost/portgroups/2973ce70-222a-4e91-8322-cc552c38fbcb', 'rel': 'bookmark'}]}, {'uuid': '25d38996-baa9-4e72-a565-857da9e8574f', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/25d38996-baa9-4e72-a565-857da9e8574f', 'rel': 'self'}, {'href': 'http://localhost/portgroups/25d38996-baa9-4e72-a565-857da9e8574f', 'rel': 'bookmark'}]}, {'uuid': '510735e1-8adf-4c15-bfd4-70fd53fcbc7e', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/510735e1-8adf-4c15-bfd4-70fd53fcbc7e', 'rel': 'self'}, {'href': 'http://localhost/portgroups/510735e1-8adf-4c15-bfd4-70fd53fcbc7e', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups?fields=address&limit=2 {} +GOT:{'portgroups': [{'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/portgroups/defd8af1-a655-4670-914f-7e6e7aac7ffb', 'rel': 'self'}, {'href': 'http://localhost/portgroups/defd8af1-a655-4670-914f-7e6e7aac7ffb', 'rel': 'bookmark'}]}, {'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/portgroups/aaf6e8bd-3a0a-4583-b2a2-c730f457a0ba', 'rel': 'self'}, {'href': 'http://localhost/portgroups/aaf6e8bd-3a0a-4583-b2a2-c730f457a0ba', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=aaf6e8bd-3a0a-4583-b2a2-c730f457a0ba'} +GET: /v1/portgroups/?fields=address,properties {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-7831b8c3-6a86-4e1b-8e7c-ba862c081a79 +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?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e9e8da9a-090d-4e3e-be97-973f9925b97e +Openstack-Request-Id: req-62cb418a-5a1f-45ba-9cb6-c6994d85f5b9 X-Openstack-Ironic-Api-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/8421265b-7929-41b2-9d6e-05d5c910e6c8 {} -GOT:{'uuid': '8421265b-7929-41b2-9d6e-05d5c910e6c8', 'created_at': '2024-01-06T10:56:48.167862+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/8421265b-7929-41b2-9d6e-05d5c910e6c8', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/8421265b-7929-41b2-9d6e-05d5c910e6c8', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} -GET: /v1/deploy_templates/9a9c8ba9-0c6f-47ea-b679-035b07e31800?fields=name,steps {} -GOT:{'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/9a9c8ba9-0c6f-47ea-b679-035b07e31800', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/9a9c8ba9-0c6f-47ea-b679-035b07e31800', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} -GET: /v1/deploy_templates/36019057-7661-4713-aadd-26a0e3bf6654 {} +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2025-02-07T17:33:11.144882+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\": \"The API version does not allow deploy templates\"}"} -GET: /v1/deploy_templates/3f61d59c-b6b0-4dc8-ad2d-ac74e2c78255.json {} -GOT:{'uuid': '3f61d59c-b6b0-4dc8-ad2d-ac74e2c78255', 'created_at': '2024-01-06T10:56:48.295138+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/3f61d59c-b6b0-4dc8-ad2d-ac74e2c78255', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/3f61d59c-b6b0-4dc8-ad2d-ac74e2c78255', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} -GET: /v1/deploy_templates/7281bb58-500c-4737-8054-73e291ebca59 {} -GOT:{'uuid': '7281bb58-500c-4737-8054-73e291ebca59', 'created_at': '2024-01-06T10:56:48.340505+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/7281bb58-500c-4737-8054-73e291ebca59', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/7281bb58-500c-4737-8054-73e291ebca59', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} -GET: /v1/deploy_templates/0a75e1e6-b82e-4ab4-881c-b77b8515375f {} -GOT:{'uuid': '0a75e1e6-b82e-4ab4-881c-b77b8515375f', 'created_at': '2024-01-06T10:56:48.382093+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/0a75e1e6-b82e-4ab4-881c-b77b8515375f', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/0a75e1e6-b82e-4ab4-881c-b77b8515375f', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} -GET: /v1/deploy_templates/0a75e1e6-b82e-4ab4-881c-b77b8515375f {} -GOT:{'uuid': '0a75e1e6-b82e-4ab4-881c-b77b8515375f', 'created_at': '2024-01-06T10:56:48.382093+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/0a75e1e6-b82e-4ab4-881c-b77b8515375f', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/0a75e1e6-b82e-4ab4-881c-b77b8515375f', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} -GET: /deploy_templates/0a75e1e6-b82e-4ab4-881c-b77b8515375f {} -GOT:{'uuid': '0a75e1e6-b82e-4ab4-881c-b77b8515375f', 'created_at': '2024-01-06T10:56:48.382093+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/0a75e1e6-b82e-4ab4-881c-b77b8515375f', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/0a75e1e6-b82e-4ab4-881c-b77b8515375f', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} -GET: /v1/deploy_templates {} -GOT:{'deploy_templates': [{'uuid': '7e550dae-5404-4c92-8bf4-5bf369b84867', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/7e550dae-5404-4c92-8bf4-5bf369b84867', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/7e550dae-5404-4c92-8bf4-5bf369b84867', 'rel': 'bookmark'}]}, {'uuid': 'd789c1c0-de8a-4a0e-b580-d61be672d567', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/d789c1c0-de8a-4a0e-b580-d61be672d567', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/d789c1c0-de8a-4a0e-b580-d61be672d567', 'rel': 'bookmark'}]}, {'uuid': 'b171c6ae-c218-4832-882a-a126b991d52e', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/b171c6ae-c218-4832-882a-a126b991d52e', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/b171c6ae-c218-4832-882a-a126b991d52e', 'rel': 'bookmark'}]}, {'uuid': '11c67fc6-322c-49b2-ad27-b7ccc9a1dca0', 'name': 'CUSTOM_DT3', 'links': [{'href': 'http://localhost/v1/deploy_templates/11c67fc6-322c-49b2-ad27-b7ccc9a1dca0', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/11c67fc6-322c-49b2-ad27-b7ccc9a1dca0', 'rel': 'bookmark'}]}, {'uuid': '88f52085-034c-4ea2-ada6-f6024e8471a7', 'name': 'CUSTOM_DT4', 'links': [{'href': 'http://localhost/v1/deploy_templates/88f52085-034c-4ea2-ada6-f6024e8471a7', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/88f52085-034c-4ea2-ada6-f6024e8471a7', 'rel': 'bookmark'}]}]} -GET: /v1/deploy_templates {} -GOT:{'deploy_templates': [{'uuid': 'a05eb64e-6ba0-4d57-8dd8-120a56c606ff', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/a05eb64e-6ba0-4d57-8dd8-120a56c606ff', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/a05eb64e-6ba0-4d57-8dd8-120a56c606ff', 'rel': 'bookmark'}]}]} -GET: /v1/deploy_templates/90cab062-2ad7-4832-acb9-f6186c52995c {} -GOT:{'uuid': '90cab062-2ad7-4832-acb9-f6186c52995c', 'created_at': '2024-01-06T10:56:48.526633+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/90cab062-2ad7-4832-acb9-f6186c52995c', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/90cab062-2ad7-4832-acb9-f6186c52995c', '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_versions.TestVersionConstants.test_duplicates -ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates ... 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_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_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.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 -GOT:Response: 403 Forbidden +{"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-562fc18d-13fa-4052-b59d-4d3c3d6902e7 +Openstack-Request-Id: req-a98179c2-a3ca-40ee-a792-761882576a74 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +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-07T17:33:11.884172+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': '2025-02-07T17:33:12.005982+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 {} +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_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.TestPatch.test_update_owner_allocation +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation ... 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_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_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_port.TestPatch.test_replace_physical_network +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network ... 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_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.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.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_cinder.TestCinderUtils.test__create_metadata_dictionary +ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary ... 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.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.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_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.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_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_portgroup.TestListPortgroups.test_links +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links ... 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.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.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found ... ok +GOT:{'deploy_templates': [{'uuid': '68e33969-10c4-4586-b363-9075d529a1c2', 'created_at': '2025-02-07T17:33:10.306907+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/68e33969-10c4-4586-b363-9075d529a1c2', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/68e33969-10c4-4586-b363-9075d529a1c2', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': '392ebf3c-b16c-4d7b-a789-8866a5c3fd80', 'created_at': '2025-02-07T17:33:10.304760+00:00', 'updated_at': None, 'name': 'CUSTOM_DT2', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/392ebf3c-b16c-4d7b-a789-8866a5c3fd80', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/392ebf3c-b16c-4d7b-a789-8866a5c3fd80', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': '4fceb2ca-3747-4349-9cca-2613a675e331', 'created_at': '2025-02-07T17:33:10.302316+00:00', 'updated_at': None, 'name': 'CUSTOM_DT3', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/4fceb2ca-3747-4349-9cca-2613a675e331', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/4fceb2ca-3747-4349-9cca-2613a675e331', '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-7d614d5b-1fdc-4eec-a8d7-8ab06df63e82 +Openstack-Request-Id: req-7ce77a14-2475-4c15-af32-f052cbe6880b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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/b4e551df-9218-4390-9af1-4fac70bdc4df', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/b4e551df-9218-4390-9af1-4fac70bdc4df', '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': '0e378069-b7cf-4d19-babf-4c41de670f94', 'links': [{'href': 'http://localhost/v1/deploy_templates/0e378069-b7cf-4d19-babf-4c41de670f94', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/0e378069-b7cf-4d19-babf-4c41de670f94', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': 'd40e5992-3666-4f03-8732-28e510c2a3d4', 'links': [{'href': 'http://localhost/v1/deploy_templates/d40e5992-3666-4f03-8732-28e510c2a3d4', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/d40e5992-3666-4f03-8732-28e510c2a3d4', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': '92e623ad-e201-45f6-9218-6e2d46e78974', 'links': [{'href': 'http://localhost/v1/deploy_templates/92e623ad-e201-45f6-9218-6e2d46e78974', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/92e623ad-e201-45f6-9218-6e2d46e78974', '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/75cd2a43-3e45-4ec2-859b-c022f82fd5b9', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/75cd2a43-3e45-4ec2-859b-c022f82fd5b9', 'rel': 'bookmark'}]}, {'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/0258fbe8-f9b3-4bae-ab60-013bca2a0ac3', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/0258fbe8-f9b3-4bae-ab60-013bca2a0ac3', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=0258fbe8-f9b3-4bae-ab60-013bca2a0ac3'} +GET: /v1/deploy_templates/f9620ed8-c9d1-400b-b585-5d15f8716704?fields=uuid,spongebob {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-2ca22b55-f00a-4bd2-9a32-e06aca81e69e +Openstack-Request-Id: req-18e80215-d366-44fd-b945-7458f39afc4c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} +GET: /v1/deploy_templates/bb6c7a91-7954-4153-a7b9-2ca93f47a18a {} +GOT:{'uuid': 'bb6c7a91-7954-4153-a7b9-2ca93f47a18a', 'created_at': '2025-02-07T17:33:11.799782+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/bb6c7a91-7954-4153-a7b9-2ca93f47a18a', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/bb6c7a91-7954-4153-a7b9-2ca93f47a18a', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} +GET: /v1/deploy_templates/89cac2ea-50aa-41a4-9ac0-b99d6ddebc18?fields=name,steps {} +GOT:{'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/89cac2ea-50aa-41a4-9ac0-b99d6ddebc18', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/89cac2ea-50aa-41a4-9ac0-b99d6ddebc18', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} +GET: /v1/deploy_templates/347d8eb9-ba76-4190-9a32-be8f0a1c856d {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f8d2b17a-0725-425f-bbc3-01c128516b4b +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow deploy templates\"}"} +GET: /v1/deploy_templates/d6f22d8b-7c3f-44e6-b6b3-d60bd88da1fc.json {} +GOT:{'uuid': 'd6f22d8b-7c3f-44e6-b6b3-d60bd88da1fc', 'created_at': '2025-02-07T17:33:12.159432+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/d6f22d8b-7c3f-44e6-b6b3-d60bd88da1fc', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/d6f22d8b-7c3f-44e6-b6b3-d60bd88da1fc', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} +GET: /v1/deploy_templates/4dd34ca5-b809-49a3-840b-c10c445507c2 {} +GOT:{'uuid': '4dd34ca5-b809-49a3-840b-c10c445507c2', 'created_at': '2025-02-07T17:33:12.287449+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/4dd34ca5-b809-49a3-840b-c10c445507c2', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/4dd34ca5-b809-49a3-840b-c10c445507c2', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} +GET: /v1/deploy_templates/801ae463-f4c5-4729-a98b-2cf7e435a82f {} +GOT:{'uuid': '801ae463-f4c5-4729-a98b-2cf7e435a82f', 'created_at': '2025-02-07T17:33:12.412591+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/801ae463-f4c5-4729-a98b-2cf7e435a82f', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/801ae463-f4c5-4729-a98b-2cf7e435a82f', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} +GET: /v1/deploy_templates/801ae463-f4c5-4729-a98b-2cf7e435a82f {} +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.TestPatch.test_update_owner_old_api +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_old_api ... ok +ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached +ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached ... ok +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-d2d84c69-7397-4551-968d-4cba187f02ab X-Openstack-Ironic-Api-Maximum-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\": \"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-4faab713-8a87-48ad-ba1d-502cb8de97c9 +Openstack-Request-Id: req-590abed3-04f1-4e6c-bf7e-29cc3a99299d X-Openstack-Ironic-Api-Maximum-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 {} +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:11.299865+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-56d49a2d-6b02-4da6-9fec-6bd510176a75 +{"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-98f66b93-77e5-4da0-bbcf-154e7702e6ed X-Openstack-Ironic-Api-Maximum-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": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:11.604316+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-caa59546-9c38-4c07-afc7-2da271db0bdb +Openstack-Request-Id: req-8c0109d9-e9a9-45ae-87cc-f996af1fa216 X-Openstack-Ironic-Api-Maximum-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": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:11.819906+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-e9bfffd2-5060-44d3-9a85-49efd165648b +Openstack-Request-Id: req-97060624-0bc4-4715-b68b-921c61f3686d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 {} -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.38 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:11.939122+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-1af9c065-8821-4e50-bafe-c69797f77921 +Openstack-Request-Id: req-b9a71375-a795-4fde-8522-18cd8b4b029d 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.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-1af9c065-8821-4e50-bafe-c69797f77921 +Openstack-Request-Id: req-d7a04917-18a0-4f9c-9e47-256ade813852 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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup pg.1: Cannot change name to invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} +PATCH: /v1/portgroups/1bf30a87-7db0-46cc-a8e7-fb29be31c24b [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-223f94c2-4683-4812-b989-b31068fb81c1 +Openstack-Request-Id: req-96b3ae6b-6cea-48d5-8882-5f49e39e1f6c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"Portgroup 1bf30a87-7db0-46cc-a8e7-fb29be31c24b 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_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_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_portgroup.TestListPortgroups.test_many +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many ... 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.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.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.TestPatch.test_update_portgroup_address_normalized +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized ... 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.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.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_many +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_many ... 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.api.controllers.v1.test_portgroup.TestListPortgroups.test_one +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one ... 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_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_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 +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-97426647-3073-47ed-a3a9-7d7402840a55 +Openstack-Request-Id: req-4f5b04c8-842e-4478-bb6f-d3852185d4c0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.50 +{"uuid": "85d9d360-4f76-4a49-bfd7-d4571add96d4", "created_at": "2025-02-07T17:33:11.745821+00:00", "updated_at": null, "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/85d9d360-4f76-4a49-bfd7-d4571add96d4", "rel": "self"}, {"href": "http://localhost/nodes/85d9d360-4f76-4a49-bfd7-d4571add96d4", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/85d9d360-4f76-4a49-bfd7-d4571add96d4/ports", "rel": "self"}, {"href": "http://localhost/nodes/85d9d360-4f76-4a49-bfd7-d4571add96d4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/85d9d360-4f76-4a49-bfd7-d4571add96d4/states", "rel": "self"}, {"href": "http://localhost/nodes/85d9d360-4f76-4a49-bfd7-d4571add96d4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/85d9d360-4f76-4a49-bfd7-d4571add96d4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/85d9d360-4f76-4a49-bfd7-d4571add96d4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/85d9d360-4f76-4a49-bfd7-d4571add96d4/volume", "rel": "self"}, {"href": "http://localhost/nodes/85d9d360-4f76-4a49-bfd7-d4571add96d4/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/6cc7e3bd-826c-4740-889a-c6791c89dbea [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-207ac03d-d50a-4a2f-9063-58e3426b3e7b +Openstack-Request-Id: req-b227575d-1158-4e0b-a7f5-c4fac66a4a15 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +X-Openstack-Ironic-Api-Version: 1.50 +{"uuid": "6cc7e3bd-826c-4740-889a-c6791c89dbea", "created_at": "2025-02-07T17:33:12.021020+00:00", "updated_at": null, "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/6cc7e3bd-826c-4740-889a-c6791c89dbea", "rel": "self"}, {"href": "http://localhost/nodes/6cc7e3bd-826c-4740-889a-c6791c89dbea", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6cc7e3bd-826c-4740-889a-c6791c89dbea/ports", "rel": "self"}, {"href": "http://localhost/nodes/6cc7e3bd-826c-4740-889a-c6791c89dbea/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6cc7e3bd-826c-4740-889a-c6791c89dbea/states", "rel": "self"}, {"href": "http://localhost/nodes/6cc7e3bd-826c-4740-889a-c6791c89dbea/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6cc7e3bd-826c-4740-889a-c6791c89dbea/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6cc7e3bd-826c-4740-889a-c6791c89dbea/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6cc7e3bd-826c-4740-889a-c6791c89dbea/volume", "rel": "self"}, {"href": "http://localhost/nodes/6cc7e3bd-826c-4740-889a-c6791c89dbea/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/d65dc182-bc0c-44f4-baca-c44360a7e116 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-eeab2f20-515c-44a5-bba3-c811a5142bf4 +Openstack-Request-Id: req-66a6ef6c-a4e3-44be-ae43-fb7a4c5c066d X-Openstack-Ironic-Api-Maximum-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 {} +X-Openstack-Ironic-Api-Version: 1.50 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update owner of node \\\"d65dc182-bc0c-44f4-baca-c44360a7e116\\\" while it is allocated to an allocation with an owner.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/bffeb061-8075-4569-80e8-194da3eb13d8 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-40830465-061e-4da9-95d0-195715e0aaaa +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/092f2b52-f303-4c12-947c-1ff43ad4194a [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] +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 +GOT:{'uuid': '6cfd6377-cea6-4850-a217-05efa0a59319', 'created_at': '2025-02-07T17:33:10.021487+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/6cfd6377-cea6-4850-a217-05efa0a59319', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/6cfd6377-cea6-4850-a217-05efa0a59319', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/volume/targets {} +GOT:{'targets': [{'uuid': '3e4f8f9e-9867-45a6-bbfa-9067d61e4e98', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/3e4f8f9e-9867-45a6-bbfa-9067d61e4e98', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/3e4f8f9e-9867-45a6-bbfa-9067d61e4e98', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '29722836-a287-44da-bed1-1f5eabad1f36', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/29722836-a287-44da-bed1-1f5eabad1f36', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/29722836-a287-44da-bed1-1f5eabad1f36', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '285c242b-0f2a-4a49-937b-3801b441aa91', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/285c242b-0f2a-4a49-937b-3801b441aa91', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/285c242b-0f2a-4a49-937b-3801b441aa91', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'b628ce9e-b942-42a6-a0c4-e1ded778ff70', 'boot_index': 3, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/b628ce9e-b942-42a6-a0c4-e1ded778ff70', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/b628ce9e-b942-42a6-a0c4-e1ded778ff70', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '6cc02f07-b9bf-4ffc-b94b-238cd5bd31c9', 'boot_index': 4, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/6cc02f07-b9bf-4ffc-b94b-238cd5bd31c9', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/6cc02f07-b9bf-4ffc-b94b-238cd5bd31c9', '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 -Openstack-Request-Id: req-e1c8c0b7-5be5-4e99-b405-e88fae130cd7 +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/volume/targets?sort_key=uuid {} +GOT:{'targets': [{'uuid': '5821460e-c3e9-4266-95f0-d07a158037ea', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/5821460e-c3e9-4266-95f0-d07a158037ea', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/5821460e-c3e9-4266-95f0-d07a158037ea', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '820d03c9-af76-4294-83e1-4fd01a2ff543', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/820d03c9-af76-4294-83e1-4fd01a2ff543', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/820d03c9-af76-4294-83e1-4fd01a2ff543', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'c48771f4-038e-4593-844f-eeadc9685067', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/c48771f4-038e-4593-844f-eeadc9685067', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/c48771f4-038e-4593-844f-eeadc9685067', '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-d3afb5b2-3268-42a0-8a91-9c283cbbb698 X-Openstack-Ironic-Api-Maximum-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\": \"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-9916bd7f-be69-4d1b-9e38-20c326d34c82 +Openstack-Request-Id: req-15013c66-0b49-4aa7-9e6f-8950b7b16e72 X-Openstack-Ironic-Api-Maximum-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\": \"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-6e4cc53a-39aa-4859-9289-92615b8056ff +Openstack-Request-Id: req-98944c92-db2e-4fbd-b75d-776773dc882b X-Openstack-Ironic-Api-Maximum-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.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_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.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.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_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.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.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.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.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_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.TestListNodes.test_get_nodes_by_description -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_description ... 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.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_port.TestPatch.test_remove_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid ... 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_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_remove_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_uuid ... 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_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.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.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.common.test_keystone.KeystoneTestCase.test_get_session -ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session ... 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_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.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_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_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_node.TestPatch.test_replace_chassis_id -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_id ... 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.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.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.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.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_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.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.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.common.test_cinder.TestCinderActions.test_attach_volumes -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes ... 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_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_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.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_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_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.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 -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties 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 -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-86bf78ba-1c59-46d1-a181-0c185e19f981 +Openstack-Request-Id: req-638dd7de-760d-4004-8f58-9e00ba7022f5 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-06T10:56:48.459885+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': '2024-01-06T10:56:48.459885+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 +{"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/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-54f9c2cb-4e89-4d67-9bb5-367e92c08865 +Openstack-Request-Id: req-638dd7de-760d-4004-8f58-9e00ba7022f5 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-06T10:56:48.534062+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 +{"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 -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-5d713603-6236-46ed-8557-cf982e8e0763 +Openstack-Request-Id: req-aca75e72-7bd0-4f66-8746-f0ac8d6229ea 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-06T10:56:48.606478+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\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-86d7432e-33e1-45db-8dc5-93c9ca93bfdd +Openstack-Request-Id: req-aca75e72-7bd0-4f66-8746-f0ac8d6229ea 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-06T10:56:48.681432+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\": \"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-729c3f7d-66e3-46c5-a871-fc5ab72f1aca +Openstack-Request-Id: req-9fe61b17-6320-4cbc-beb9-929313fb4be8 X-Openstack-Ironic-Api-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'} -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_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_port.TestListPorts.test_links -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links ... 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_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.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.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_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.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_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.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http ... ok -GOT:Response: 406 Not Acceptable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"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-df76bc00-1f51-48f2-9a0c-e319ef20be2f +Openstack-Request-Id: req-e16f7a03-d308-4c17-ad4b-9b463812a657 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'}] -GOT:Response: 400 Bad Request +{"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-fb9fa00e-91ba-4e30-99d2-87091ef7bf19 +Openstack-Request-Id: req-08113734-91da-4f4d-a19f-38f26cd6906c 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'}] +{"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-3baee4ed-1fca-4e5c-9b10-b3f6551d54ee +Openstack-Request-Id: req-e0cd0d9c-8d25-4bed-ab4a-7dec0bf37776 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": "2024-01-06T10:56:48.312540+00:00", "updated_at": "2024-01-06T10:56:48.336856+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'}] +X-Openstack-Ironic-Api-Version: 1.19 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:11.330507+00:00", "updated_at": "2025-02-07T17:33:11.354460+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 Content-Type: application/json -Openstack-Request-Id: req-2bb95a8a-c95c-444c-922a-e93109734391 +Openstack-Request-Id: req-d48dbd87-cad8-4f3d-bc1c-e4c22cb71b36 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": "2024-01-06T10:56:48.312540+00:00", "updated_at": "2024-01-06T10:56:48.356691+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'}] +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:11.511336+00:00", "updated_at": "2025-02-07T17:33:11.537639+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-70c8624b-fd59-4e50-b2a0-fbc230aa4dce +Openstack-Request-Id: req-313300e7-a75e-4bde-b289-b0235196f4fd 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'}] +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-7816acc3-bc15-44ab-9745-884692690f5c +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-07T17:33:11.896501+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-4a319aaa-5aae-4fe2-8f27-b582f5ece96d +Openstack-Request-Id: req-fc9bd857-f49b-41cb-9673-783a508e5e9f 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'}] +{"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-33d6a81c-ba29-4dc6-8f85-7ff1168bc0a9 +Openstack-Request-Id: req-5775afe4-2328-4d70-9418-9cd85088ffcc 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": "2024-01-06T10:56:48.496185+00:00", "updated_at": "2024-01-06T10:56:48.518702+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'}] +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:12.131023+00:00", "updated_at": "2025-02-07T17:33:12.153056+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-0c858b71-35cb-47bb-95c2-c5f44223169a +Openstack-Request-Id: req-6d63c971-418c-437c-8db8-51ec44302879 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'}] +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-45ae0ef7-3ca3-4634-bf26-0716770b0554 +Openstack-Request-Id: req-dc5afa5b-bd55-4e37-98a3-38fcd9d03857 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-40298b87-624f-40d8-848f-ff91005a0798 -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 -Content-Type: application/json -Openstack-Request-Id: req-cc0072d9-ad50-4a69-b938-877d370fb144 -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'}] +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '64bb5786-0d58-4b82-b912-0431296c9844', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c1ceb6eb-8621-406d-a909-8c6e6b885ca3 +Openstack-Request-Id: req-bbed6c53-47fb-4c65-9d7a-de2833619973 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": "2024-01-06T10:56:48.776562+00:00", "updated_at": "2024-01-06T10:56:48.796474+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_port.TestPatch.test_replace_multi -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_multi ... ok +X-Openstack-Ironic-Api-Version: 1.24 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:12.573901+00:00", "updated_at": "2025-02-07T17:33:12.599104+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": "64bb5786-0d58-4b82-b912-0431296c9844"} +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_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.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.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_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_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_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.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.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.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_node.TestPatch.test_replace_consoled_enabled -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_consoled_enabled ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T10:56:48.232419+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-06T10:56:48.294182+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-06T10:56:48.294182+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-06T10:56:48.349068+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-06T10:56:48.349068+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-06T10:56:48.406118+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-06T10:56:48.406118+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-06T10:56:48.678522+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-06T10:56:48.726711+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-06T10:56:48.726711+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/6a93eeeb-9c4a-48fe-b4fe-8cf6cf2388a3 {} -GOT:{'uuid': '6a93eeeb-9c4a-48fe-b4fe-8cf6cf2388a3', 'created_at': '2024-01-06T10:56:48.784668+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/6a93eeeb-9c4a-48fe-b4fe-8cf6cf2388a3', 'rel': 'self'}, {'href': 'http://localhost/ports/6a93eeeb-9c4a-48fe-b4fe-8cf6cf2388a3', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/ports/6a93eeeb-9c4a-48fe-b4fe-8cf6cf2388a3 {} -GOT:{'uuid': '6a93eeeb-9c4a-48fe-b4fe-8cf6cf2388a3', 'created_at': '2024-01-06T10:56:48.784668+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/6a93eeeb-9c4a-48fe-b4fe-8cf6cf2388a3', 'rel': 'self'}, {'href': 'http://localhost/ports/6a93eeeb-9c4a-48fe-b4fe-8cf6cf2388a3', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /ports/6a93eeeb-9c4a-48fe-b4fe-8cf6cf2388a3 {} -GOT:{'uuid': '6a93eeeb-9c4a-48fe-b4fe-8cf6cf2388a3', 'created_at': '2024-01-06T10:56:48.784668+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/6a93eeeb-9c4a-48fe-b4fe-8cf6cf2388a3', 'rel': 'self'}, {'href': 'http://localhost/ports/6a93eeeb-9c4a-48fe-b4fe-8cf6cf2388a3', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/ports/02426ef9-3a99-4c9b-867d-a331ec9f0132 {} -GOT:{'uuid': '02426ef9-3a99-4c9b-867d-a331ec9f0132', 'created_at': '2024-01-06T10:56:48.869442+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://foo/v1/ports/02426ef9-3a99-4c9b-867d-a331ec9f0132', 'rel': 'self'}, {'href': 'http://foo/ports/02426ef9-3a99-4c9b-867d-a331ec9f0132', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -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.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_utils.TestCheckAllowFields.test_check_allow_driver_detail_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_fail ... ok -GOT:Response: 406 Not Acceptable +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_portgroup.TestPatch.test_update_portgroup_mode_properties +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1e3089a7-4739-4683-8557-7479138bea6b +Openstack-Request-Id: req-5d31446c-7318-4cf7-bb09-957d250b5f99 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.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:11.660608+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-c29c7b63-61bb-4630-8e97-2d4bee14b97d +Openstack-Request-Id: req-5d31446c-7318-4cf7-bb09-957d250b5f99 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 {} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:11.660608+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-0813e965-ce8f-4c51-8e8d-47e5fb1aee5e +Openstack-Request-Id: req-70a6faea-f296-47df-b682-5c8f5122f0b6 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': 'e799434c-fa55-457b-8d59-fc43037ec74c', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/e799434c-fa55-457b-8d59-fc43037ec74c', 'rel': 'self'}, {'href': 'http://localhost/nodes/e799434c-fa55-457b-8d59-fc43037ec74c', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?description_contains=dog {} -GOT:{'nodes': [{'uuid': '1f5d505f-cfa0-4316-9f77-03c361c5f193', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/1f5d505f-cfa0-4316-9f77-03c361c5f193', 'rel': 'self'}, {'href': 'http://localhost/nodes/1f5d505f-cfa0-4316-9f77-03c361c5f193', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?driver=ipmi {} -GOT:{'nodes': [{'uuid': '8d5bb22b-ba5d-4efd-a331-29864a30e091', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/8d5bb22b-ba5d-4efd-a331-29864a30e091', 'rel': 'self'}, {'href': 'http://localhost/nodes/8d5bb22b-ba5d-4efd-a331-29864a30e091', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?driver=fake-hardware {} -GOT:{'nodes': [{'uuid': 'd2b13bce-dc02-4e6a-8c8d-118446f6c4ac', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/d2b13bce-dc02-4e6a-8c8d-118446f6c4ac', 'rel': 'self'}, {'href': 'http://localhost/nodes/d2b13bce-dc02-4e6a-8c8d-118446f6c4ac', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?driver=fake {} -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-fa5ab6f1-76e1-4d51-b4d5-e5c2088ca7f6 +Openstack-Request-Id: req-70a6faea-f296-47df-b682-5c8f5122f0b6 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': '6de721fa-b178-43ec-8c5b-85964fcd810a', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/6de721fa-b178-43ec-8c5b-85964fcd810a', 'rel': 'self'}, {'href': 'http://localhost/nodes/6de721fa-b178-43ec-8c5b-85964fcd810a', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?fault=clean failure {} -GOT:{'nodes': [{'uuid': 'c825b042-7ec8-41f2-b31d-78e8d13432d5', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/c825b042-7ec8-41f2-b31d-78e8d13432d5', 'rel': 'self'}, {'href': 'http://localhost/nodes/c825b042-7ec8-41f2-b31d-78e8d13432d5', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?fault=power failure {} -GOT:{'nodes': [{'uuid': '6de721fa-b178-43ec-8c5b-85964fcd810a', 'created_at': '2024-01-06T10:56:48.836065+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/6de721fa-b178-43ec-8c5b-85964fcd810a', 'rel': 'self'}, {'href': 'http://localhost/nodes/6de721fa-b178-43ec-8c5b-85964fcd810a', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/6de721fa-b178-43ec-8c5b-85964fcd810a/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/6de721fa-b178-43ec-8c5b-85964fcd810a/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/6de721fa-b178-43ec-8c5b-85964fcd810a/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/6de721fa-b178-43ec-8c5b-85964fcd810a/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/6de721fa-b178-43ec-8c5b-85964fcd810a/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/6de721fa-b178-43ec-8c5b-85964fcd810a/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/6de721fa-b178-43ec-8c5b-85964fcd810a/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/6de721fa-b178-43ec-8c5b-85964fcd810a/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_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_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_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_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_molds.ConfigurationMoldTestCase.test_get_configuration_http_error -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_error ... 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_node.TestPatch.test_replace_internal_field -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field ... 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_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_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.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_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_port.TestPatch.test_replace_node_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_uuid ... 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.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.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_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_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_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_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_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.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.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.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.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.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.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_node.TestListNodes.test_get_nodes_by_invalid_driver -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver ... ok -GOT:Response: 400 Bad Request +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 Content-Type: application/json -Openstack-Request-Id: req-6453a884-6472-440b-af8a-9e2461f556e5 +Openstack-Request-Id: req-593740e1-19c0-4b96-92fa-b561c75c481a 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.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-d03cb0bf-c4cc-4512-bf9b-0c6c0896bcef +Openstack-Request-Id: req-593740e1-19c0-4b96-92fa-b561c75c481a 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-06T10:56:48.559021+00:00", "updated_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'}] +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.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.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.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.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.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.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 +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:09.940376+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-71e6d400-f3de-43b4-a5ff-2f46e7d36566 +Openstack-Request-Id: req-d31828bb-b7b5-4175-8062-d658117a1dd9 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'}] +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-3fd17f58-868f-4408-b6e0-39dac8fb9c89 +Openstack-Request-Id: req-f67fa791-7241-4bae-8ef9-4be8b717f273 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'}] -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': 'ea0f0658-2bd9-4a7a-bf42-7341cbee7003', 'created_at': '2025-02-07T17:33:11.155010+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': '30106698-964c-4379-a88e-ee0baa46b1d8', '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/ea0f0658-2bd9-4a7a-bf42-7341cbee7003', 'rel': 'self'}, {'href': 'http://localhost/nodes/ea0f0658-2bd9-4a7a-bf42-7341cbee7003', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/ea0f0658-2bd9-4a7a-bf42-7341cbee7003/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ea0f0658-2bd9-4a7a-bf42-7341cbee7003/ports', 'rel': 'bookmark'}]}, {'uuid': 'b849f592-a903-45c5-8851-629eca8f80fb', 'created_at': '2025-02-07T17:33:11.159371+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': '0616b0bd-2929-42d1-9947-06ffb7d46c3e', '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/b849f592-a903-45c5-8851-629eca8f80fb', 'rel': 'self'}, {'href': 'http://localhost/nodes/b849f592-a903-45c5-8851-629eca8f80fb', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/b849f592-a903-45c5-8851-629eca8f80fb/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b849f592-a903-45c5-8851-629eca8f80fb/ports', 'rel': 'bookmark'}]}, {'uuid': '6dca069e-8604-4ce3-9adc-bd2c59dff996', 'created_at': '2025-02-07T17:33:11.163046+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': 'd8d4677a-0706-4163-b4ab-046377a52694', '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/6dca069e-8604-4ce3-9adc-bd2c59dff996', 'rel': 'self'}, {'href': 'http://localhost/nodes/6dca069e-8604-4ce3-9adc-bd2c59dff996', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/6dca069e-8604-4ce3-9adc-bd2c59dff996/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/6dca069e-8604-4ce3-9adc-bd2c59dff996/ports', 'rel': 'bookmark'}]}, {'uuid': 'd1dc37ca-224b-4875-9d39-ac722b16e9f0', 'created_at': '2025-02-07T17:33:11.166719+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': '9a11af31-ea5d-40a9-9bb8-99882f2aceae', '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/d1dc37ca-224b-4875-9d39-ac722b16e9f0', 'rel': 'self'}, {'href': 'http://localhost/nodes/d1dc37ca-224b-4875-9d39-ac722b16e9f0', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/d1dc37ca-224b-4875-9d39-ac722b16e9f0/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/d1dc37ca-224b-4875-9d39-ac722b16e9f0/ports', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?instance_uuid=157f50e7-fcd8-4e3c-b86c-670da25e0110 {} +GOT:{'nodes': [{'uuid': '6f52300b-6335-4c9f-a5db-c63259b219ae', 'created_at': '2025-02-07T17:33:11.428888+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': '157f50e7-fcd8-4e3c-b86c-670da25e0110', '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/6f52300b-6335-4c9f-a5db-c63259b219ae', 'rel': 'self'}, {'href': 'http://localhost/nodes/6f52300b-6335-4c9f-a5db-c63259b219ae', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/6f52300b-6335-4c9f-a5db-c63259b219ae/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/6f52300b-6335-4c9f-a5db-c63259b219ae/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-70a09058-3d2c-4b58-94ae-56d7b0d2c8d0 +Openstack-Request-Id: req-e2cb3fe0-389e-482f-8bad-d7196f5a89d3 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-06T10:56:48.777818+00:00", "updated_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}] +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-a74b8ea9-14fb-4557-9733-daeb311967a8 +Openstack-Request-Id: req-b5c4cc43-85f4-4f99-a303-85d8ad38f61b 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'}] +{"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.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.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_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.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_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.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.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.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.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.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target ... 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_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_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.TestPatch.test_update_protected +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected ... 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.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.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_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_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_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_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate ... 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.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.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.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_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.TestPatch.test_update_protected_old_api +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_old_api ... 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.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 +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2025-02-07T17:33:12.117705+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/0cfbd5cb-7e32-468d-a115-0a1d2cfc042b {} +GOT:{'uuid': '0cfbd5cb-7e32-468d-a115-0a1d2cfc042b', 'created_at': '2025-02-07T17:33:12.259263+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/0cfbd5cb-7e32-468d-a115-0a1d2cfc042b', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0cfbd5cb-7e32-468d-a115-0a1d2cfc042b', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/0cfbd5cb-7e32-468d-a115-0a1d2cfc042b/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0cfbd5cb-7e32-468d-a115-0a1d2cfc042b/ports', 'rel': 'bookmark'}]} +GET: /v1/portgroups/0cfbd5cb-7e32-468d-a115-0a1d2cfc042b {} +GOT:{'uuid': '0cfbd5cb-7e32-468d-a115-0a1d2cfc042b', 'created_at': '2025-02-07T17:33:12.259263+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/0cfbd5cb-7e32-468d-a115-0a1d2cfc042b', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0cfbd5cb-7e32-468d-a115-0a1d2cfc042b', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/0cfbd5cb-7e32-468d-a115-0a1d2cfc042b/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0cfbd5cb-7e32-468d-a115-0a1d2cfc042b/ports', 'rel': 'bookmark'}]} +GET: /portgroups/0cfbd5cb-7e32-468d-a115-0a1d2cfc042b {} +GOT:{'uuid': '0cfbd5cb-7e32-468d-a115-0a1d2cfc042b', 'created_at': '2025-02-07T17:33:12.259263+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/0cfbd5cb-7e32-468d-a115-0a1d2cfc042b', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0cfbd5cb-7e32-468d-a115-0a1d2cfc042b', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/0cfbd5cb-7e32-468d-a115-0a1d2cfc042b/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0cfbd5cb-7e32-468d-a115-0a1d2cfc042b/ports', 'rel': 'bookmark'}]} +GET: /v1/portgroups {} +GOT:{'portgroups': [{'uuid': '91a518dd-c932-46c7-94b6-e5f71c2a14ef', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/91a518dd-c932-46c7-94b6-e5f71c2a14ef', 'rel': 'self'}, {'href': 'http://localhost/portgroups/91a518dd-c932-46c7-94b6-e5f71c2a14ef', 'rel': 'bookmark'}]}, {'uuid': '046e106e-64b5-4c81-8814-3d0e020a2668', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/046e106e-64b5-4c81-8814-3d0e020a2668', 'rel': 'self'}, {'href': 'http://localhost/portgroups/046e106e-64b5-4c81-8814-3d0e020a2668', 'rel': 'bookmark'}]}, {'uuid': 'f2a649ae-e56d-4d38-b379-3c58aa9dee76', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/f2a649ae-e56d-4d38-b379-3c58aa9dee76', 'rel': 'self'}, {'href': 'http://localhost/portgroups/f2a649ae-e56d-4d38-b379-3c58aa9dee76', 'rel': 'bookmark'}]}, {'uuid': '9fabb441-0822-4d7d-98cc-2d3fd8764abf', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/9fabb441-0822-4d7d-98cc-2d3fd8764abf', 'rel': 'self'}, {'href': 'http://localhost/portgroups/9fabb441-0822-4d7d-98cc-2d3fd8764abf', 'rel': 'bookmark'}]}, {'uuid': '2cadc632-5cac-482d-8fb8-d5fba7ef68ba', 'address': '52:54:00:cf:2d:34', 'name': 'portgroup4', 'links': [{'href': 'http://localhost/v1/portgroups/2cadc632-5cac-482d-8fb8-d5fba7ef68ba', 'rel': 'self'}, {'href': 'http://localhost/portgroups/2cadc632-5cac-482d-8fb8-d5fba7ef68ba', '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': 'd965320a-bc01-41b5-8f60-b0a1e97b0db8', 'address': 'aa:bb:cc:dd:ee:f1', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/d965320a-bc01-41b5-8f60-b0a1e97b0db8', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d965320a-bc01-41b5-8f60-b0a1e97b0db8', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups?address=invalid-mac-format {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-60bbbb61-88d5-482e-85f9-08bbfb9b1bd8 +Openstack-Request-Id: req-61e6b5fd-2bfb-4ce3-9604-751b7506debf 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}] -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_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.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 +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-909611ef-b34b-4d99-9b7b-2e09a592f540 +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/8b40bdd0-e76a-4a5c-9183-098c7c857afc/ports {} +GOT:{'ports': [{'uuid': '002b0cf5-3c46-493d-a029-c156b48431cf', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/002b0cf5-3c46-493d-a029-c156b48431cf', 'rel': 'self'}, {'href': 'http://localhost/ports/002b0cf5-3c46-493d-a029-c156b48431cf', 'rel': 'bookmark'}]}, {'uuid': 'ab82a58f-88bf-4e31-9b0c-639164577e24', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/ab82a58f-88bf-4e31-9b0c-639164577e24', 'rel': 'self'}, {'href': 'http://localhost/ports/ab82a58f-88bf-4e31-9b0c-639164577e24', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups/8b40bdd0-e76a-4a5c-9183-098c7c857afc/ports/detail {} +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_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_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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift ... 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.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.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_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_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.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.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.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_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.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_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_port.TestListPorts.test_many -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many ... 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.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.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_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_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_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.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_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_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.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_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_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error ... 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.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.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.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.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_cinder.TestCinderActions.test_detach_volumes -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes ... 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.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_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.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.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.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error_exceeded -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error_exceeded ... ok -GOT:{'nodes': [{'uuid': 'c825b042-7ec8-41f2-b31d-78e8d13432d5', 'created_at': '2024-01-06T10:56:48.841013+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/c825b042-7ec8-41f2-b31d-78e8d13432d5', 'rel': 'self'}, {'href': 'http://localhost/nodes/c825b042-7ec8-41f2-b31d-78e8d13432d5', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/c825b042-7ec8-41f2-b31d-78e8d13432d5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c825b042-7ec8-41f2-b31d-78e8d13432d5/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/c825b042-7ec8-41f2-b31d-78e8d13432d5/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/c825b042-7ec8-41f2-b31d-78e8d13432d5/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/c825b042-7ec8-41f2-b31d-78e8d13432d5/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/c825b042-7ec8-41f2-b31d-78e8d13432d5/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/c825b042-7ec8-41f2-b31d-78e8d13432d5/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/c825b042-7ec8-41f2-b31d-78e8d13432d5/volume', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?fault=power failure {} -GOT:Response: 406 Not Acceptable +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.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 +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b2f66625-e225-4b0b-8361-d4dabde34bbf +Openstack-Request-Id: req-9fe61b17-6320-4cbc-beb9-929313fb4be8 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.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-ee601769-db3c-4fce-8af4-c9ce9ab4bcf3 +Openstack-Request-Id: req-291b11a0-9ffe-4079-8178-0b1123b0129e 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 {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:12.846099+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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 Content-Type: application/json -Openstack-Request-Id: req-336d49d3-c209-43ed-acb6-1e4abfb78e22 +Openstack-Request-Id: req-291b11a0-9ffe-4079-8178-0b1123b0129e 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 {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:12.846099+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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_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_event.TestPost.test_events +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events ... 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.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.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_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_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.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_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1c685343-f34e-4d42-805c-4ea7d6465ecf +Openstack-Request-Id: req-6784c647-da4f-4565-83e8-12084724029d 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 {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.50 +{"uuid": "092f2b52-f303-4c12-947c-1ff43ad4194a", "created_at": "2025-02-07T17:33:12.557279+00:00", "updated_at": null, "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/092f2b52-f303-4c12-947c-1ff43ad4194a", "rel": "self"}, {"href": "http://localhost/nodes/092f2b52-f303-4c12-947c-1ff43ad4194a", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/092f2b52-f303-4c12-947c-1ff43ad4194a/ports", "rel": "self"}, {"href": "http://localhost/nodes/092f2b52-f303-4c12-947c-1ff43ad4194a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/092f2b52-f303-4c12-947c-1ff43ad4194a/states", "rel": "self"}, {"href": "http://localhost/nodes/092f2b52-f303-4c12-947c-1ff43ad4194a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/092f2b52-f303-4c12-947c-1ff43ad4194a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/092f2b52-f303-4c12-947c-1ff43ad4194a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/092f2b52-f303-4c12-947c-1ff43ad4194a/volume", "rel": "self"}, {"href": "http://localhost/nodes/092f2b52-f303-4c12-947c-1ff43ad4194a/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/0dcdf5dc-8558-44ba-bb86-8f31bacf0b3f [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-70783cc5-34c4-4dc5-9a7f-cedc0fca76ea +Openstack-Request-Id: req-1c50da35-c44e-4417-b35d-9294e2ecc950 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': '0d844a5b-90a0-4e57-806b-e2d0c3937385', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/0d844a5b-90a0-4e57-806b-e2d0c3937385', 'rel': 'self'}, {'href': 'http://localhost/nodes/0d844a5b-90a0-4e57-806b-e2d0c3937385', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?lessee=project2 {} -GOT:{'nodes': [{'uuid': 'ac3877d1-4fee-486c-be40-c51e9f5a9b12', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/ac3877d1-4fee-486c-be40-c51e9f5a9b12', 'rel': 'self'}, {'href': 'http://localhost/nodes/ac3877d1-4fee-486c-be40-c51e9f5a9b12', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?lessee=project1 {} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.50 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update owner of node \\\"0dcdf5dc-8558-44ba-bb86-8f31bacf0b3f\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"} +PATCH: /v1/nodes/d0f0e6cf-66e8-446d-866c-094b332549b2 [{'path': '/protected', 'value': True, 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-a4ba830d-e23c-4241-9e34-304329d99a06 +Openstack-Request-Id: req-986a3f89-b4a4-4e5c-bae5-e1944ee0600f 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-06T10:56:48.801067+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 +X-Openstack-Ironic-Api-Version: 1.48 +{"uuid": "d0f0e6cf-66e8-446d-866c-094b332549b2", "created_at": "2025-02-07T17:33:12.955486+00:00", "updated_at": null, "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/d0f0e6cf-66e8-446d-866c-094b332549b2", "rel": "self"}, {"href": "http://localhost/nodes/d0f0e6cf-66e8-446d-866c-094b332549b2", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d0f0e6cf-66e8-446d-866c-094b332549b2/ports", "rel": "self"}, {"href": "http://localhost/nodes/d0f0e6cf-66e8-446d-866c-094b332549b2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d0f0e6cf-66e8-446d-866c-094b332549b2/states", "rel": "self"}, {"href": "http://localhost/nodes/d0f0e6cf-66e8-446d-866c-094b332549b2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d0f0e6cf-66e8-446d-866c-094b332549b2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d0f0e6cf-66e8-446d-866c-094b332549b2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d0f0e6cf-66e8-446d-866c-094b332549b2/volume", "rel": "self"}, {"href": "http://localhost/nodes/d0f0e6cf-66e8-446d-866c-094b332549b2/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/46c0386b-ca39-49c3-b3bf-2d7c6d3645b4 [{'path': '/protected', 'value': True, 'op': 'replace'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-5f5239b0-120a-4363-a730-c19ea9a46765 +Openstack-Request-Id: req-14290bf7-bdae-4c97-b2f9-b991ddb3704a 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.47 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/34d32db9-f5e1-4825-8761-d18e689e467a [{'path': '/protected_reason', 'value': 'reason!', 'op': 'replace'}] +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 GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-4bdde94e-a3c3-4542-a398-82456f064b44 +Openstack-Request-Id: req-46d6ec00-a458-497b-8f26-76c994934410 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-a19ebdc9-d53e-42fa-972c-7e67517d7ef1 +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-36add250-fd1d-4baa-8576-4250cc28c619 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-06T10:56:49.029431+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 -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-b2514b89-353c-4e16-b65b-b77739947fdd +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-191d77ec-f703-4b55-8496-bab9ae171fa4 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-06T10:56:49.095061+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'} +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-07f5928a-9117-41d6-8d4d-c8a35d6933f8 +Openstack-Request-Id: req-d754c6df-83e2-46e7-98f5-d11d79c42796 X-Openstack-Ironic-Api-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'} +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:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1fa42e24-34f6-423f-bc4c-98ea760172fe +Openstack-Request-Id: req-0f4a201f-7558-4106-b016-b5283d586cd9 X-Openstack-Ironic-Api-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 +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"power off\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"clean wait\\\".\", \"debuginfo\": null}"} +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-33a6b787-04c2-475a-aefa-003d362497f3 +Openstack-Request-Id: req-21ae5b79-cfaf-40c3-92b2-fc3673f0eda7 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}"} -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.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_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.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.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_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_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_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_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.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http ... 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.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.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.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.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_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.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.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_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.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_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.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.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 -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"not-supported\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"None\\\".\", \"debuginfo\": null}"} +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-4b8090b9-ad40-417f-ba8d-a441f361e741 +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/power {'target': 'power on'} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5fae3b8e-169e-4787-8f4f-0f191b7f848d +Openstack-Request-Id: req-be83ee32-d62a-4ecb-afc3-1297a6b2dbe9 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-06T10:56:49.031685+00:00", "updated_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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"} +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-dc8adabd-fe13-496a-ac85-2eb7fc2fd9f3 +Openstack-Request-Id: req-ea0768af-051e-42e6-9a6f-092cece134b5 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-06T10:56:49.132490+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'}] +X-Openstack-Ironic-Api-Version: 1.26 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} +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-a77ef822-8bef-4116-bf78-842531ed6316 +Openstack-Request-Id: req-895aa2af-eada-4415-8320-60437dd2edf3 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'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} +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-35d76a16-d403-4bae-b9a0-c740dcbb6af3 +Openstack-Request-Id: req-c11d4046-9614-4b20-bc03-687d7f4dec9e 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/5d296ebe-704a-4591-815a-e40d11ab3571 [{'path': '/boot_interface', 'op': 'remove'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-a0f99f3d-cad4-4acc-8be8-e000291da0bb +X-Openstack-Ironic-Api-Version: 1.27 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} +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-46ce9a00-bdc0-4d5a-af76-bb45b2a60655 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5d296ebe-704a-4591-815a-e40d11ab3571", "created_at": "2024-01-06T10:56:49.380888+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/5d296ebe-704a-4591-815a-e40d11ab3571", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/ports", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/states", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/volume", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571 [{'path': '/console_interface', 'op': 'remove'}] -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.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.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.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_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.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_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_molds.ConfigurationMoldTestCase.test_save_configuration_http_noauth -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http_noauth ... 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.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_utils.TestCheckAllowFields.test_check_allow_unknown_verbs -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_unknown_verbs ... ok -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-093b9c13-9fb8-4a1b-aa34-bf76c0611483 +X-Openstack-Ironic-Api-Version: 1.26 + +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-6bad99a7-e312-4487-8efe-145568835941 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5d296ebe-704a-4591-815a-e40d11ab3571", "created_at": "2024-01-06T10:56:49.380888+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/5d296ebe-704a-4591-815a-e40d11ab3571", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/ports", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/states", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/volume", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571 [{'path': '/deploy_interface', 'op': 'remove'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.1 + +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-9cf55481-16f4-4fe3-b8c9-48768e1214c1 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.27 + +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-845246bc-e875-4662-b25e-cd29116827fd +Openstack-Request-Id: req-929e41d6-46eb-4add-a2fd-361aac6b8df4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5d296ebe-704a-4591-815a-e40d11ab3571", "created_at": "2024-01-06T10:56:49.380888+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/5d296ebe-704a-4591-815a-e40d11ab3571", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/ports", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/states", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/volume", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571 [{'path': '/inspect_interface', 'op': 'remove'}] -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.common.test_image_service.FileImageServiceTestCase.test_download_hard_link_fail -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link_fail ... ok -GOT:{'nodes': [{'uuid': '0d844a5b-90a0-4e57-806b-e2d0c3937385', 'created_at': '2024-01-06T10:56:49.289654+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/0d844a5b-90a0-4e57-806b-e2d0c3937385', 'rel': 'self'}, {'href': 'http://localhost/nodes/0d844a5b-90a0-4e57-806b-e2d0c3937385', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/0d844a5b-90a0-4e57-806b-e2d0c3937385/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/0d844a5b-90a0-4e57-806b-e2d0c3937385/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/0d844a5b-90a0-4e57-806b-e2d0c3937385/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/0d844a5b-90a0-4e57-806b-e2d0c3937385/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/0d844a5b-90a0-4e57-806b-e2d0c3937385/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/0d844a5b-90a0-4e57-806b-e2d0c3937385/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/0d844a5b-90a0-4e57-806b-e2d0c3937385/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/0d844a5b-90a0-4e57-806b-e2d0c3937385/volume', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?lessee=project2 {} -GOT:{'nodes': [{'uuid': 'ac3877d1-4fee-486c-be40-c51e9f5a9b12', 'created_at': '2024-01-06T10:56:49.294921+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/ac3877d1-4fee-486c-be40-c51e9f5a9b12', 'rel': 'self'}, {'href': 'http://localhost/nodes/ac3877d1-4fee-486c-be40-c51e9f5a9b12', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/ac3877d1-4fee-486c-be40-c51e9f5a9b12/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ac3877d1-4fee-486c-be40-c51e9f5a9b12/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ac3877d1-4fee-486c-be40-c51e9f5a9b12/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ac3877d1-4fee-486c-be40-c51e9f5a9b12/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/ac3877d1-4fee-486c-be40-c51e9f5a9b12/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/ac3877d1-4fee-486c-be40-c51e9f5a9b12/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/ac3877d1-4fee-486c-be40-c51e9f5a9b12/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/ac3877d1-4fee-486c-be40-c51e9f5a9b12/volume', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?lessee=project1 {} +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': 'power on', 'timeout': 2} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-655a282f-f8a9-48e9-8486-5d19fc058231 +Openstack-Request-Id: req-cfadc5b3-e130-4b81-ba06-8e4958374069 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 {} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +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-80d553cb-aec6-404d-b555-a47413857214 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.27 + +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-bacdb43d-6dac-4abe-942f-a8fbffafe530 +Openstack-Request-Id: req-78ff13a6-437d-4ec2-9628-616861ee9412 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': '8a3a3dae-23a1-4dff-89db-d5c6497692ff', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/8a3a3dae-23a1-4dff-89db-d5c6497692ff', 'rel': 'self'}, {'href': 'http://localhost/nodes/8a3a3dae-23a1-4dff-89db-d5c6497692ff', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?owner=bob {} -GOT:{'nodes': [{'uuid': 'e2a30303-68b2-442f-9920-9f04a3772f91', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/e2a30303-68b2-442f-9920-9f04a3772f91', 'rel': 'self'}, {'href': 'http://localhost/nodes/e2a30303-68b2-442f-9920-9f04a3772f91', '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_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_image_service.FileImageServiceTestCase.test_show -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show ... 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.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_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.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift ... 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 -GOT:Response: 200 OK +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', 'timeout': 0} +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.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.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_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_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_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_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_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_invalid_storage_interface +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface ... 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.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.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_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_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.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_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.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.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_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_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.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.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.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 +GOT:{'uuid': '801ae463-f4c5-4729-a98b-2cf7e435a82f', 'created_at': '2025-02-07T17:33:12.412591+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/801ae463-f4c5-4729-a98b-2cf7e435a82f', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/801ae463-f4c5-4729-a98b-2cf7e435a82f', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} +GET: /deploy_templates/801ae463-f4c5-4729-a98b-2cf7e435a82f {} +GOT:{'uuid': '801ae463-f4c5-4729-a98b-2cf7e435a82f', 'created_at': '2025-02-07T17:33:12.412591+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/801ae463-f4c5-4729-a98b-2cf7e435a82f', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/801ae463-f4c5-4729-a98b-2cf7e435a82f', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} +GET: /v1/deploy_templates {} +GOT:{'deploy_templates': [{'uuid': '00042fa9-6bab-4486-81de-b6b8fdd19ce4', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/00042fa9-6bab-4486-81de-b6b8fdd19ce4', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/00042fa9-6bab-4486-81de-b6b8fdd19ce4', 'rel': 'bookmark'}]}, {'uuid': '76fdb052-0b06-4635-8fd4-bc2a799a6ad0', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/76fdb052-0b06-4635-8fd4-bc2a799a6ad0', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/76fdb052-0b06-4635-8fd4-bc2a799a6ad0', 'rel': 'bookmark'}]}, {'uuid': '71884aad-31ba-43dc-8afd-62fe05e0f3a9', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/71884aad-31ba-43dc-8afd-62fe05e0f3a9', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/71884aad-31ba-43dc-8afd-62fe05e0f3a9', 'rel': 'bookmark'}]}, {'uuid': 'b160f004-8594-45be-872a-0a7a5230e1cf', 'name': 'CUSTOM_DT3', 'links': [{'href': 'http://localhost/v1/deploy_templates/b160f004-8594-45be-872a-0a7a5230e1cf', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/b160f004-8594-45be-872a-0a7a5230e1cf', 'rel': 'bookmark'}]}, {'uuid': '1d0e3fca-31bc-4412-b691-d1cfe4285214', 'name': 'CUSTOM_DT4', 'links': [{'href': 'http://localhost/v1/deploy_templates/1d0e3fca-31bc-4412-b691-d1cfe4285214', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/1d0e3fca-31bc-4412-b691-d1cfe4285214', 'rel': 'bookmark'}]}]} +GET: /v1/deploy_templates {} +GOT:{'deploy_templates': [{'uuid': 'd9597ed0-53d4-4771-a200-0cd41fd704b3', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/d9597ed0-53d4-4771-a200-0cd41fd704b3', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/d9597ed0-53d4-4771-a200-0cd41fd704b3', 'rel': 'bookmark'}]}]} +GET: /v1/deploy_templates/95404252-b78a-466d-ab64-193bedbc79a1 {} +GOT:{'uuid': '95404252-b78a-466d-ab64-193bedbc79a1', 'created_at': '2025-02-07T17:33:12.829771+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/95404252-b78a-466d-ab64-193bedbc79a1', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/95404252-b78a-466d-ab64-193bedbc79a1', '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': '5bbe5b83-2257-414d-b4fa-ce8027063905', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/5bbe5b83-2257-414d-b4fa-ce8027063905', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/5bbe5b83-2257-414d-b4fa-ce8027063905', 'rel': 'bookmark'}]}, {'uuid': '85b152ce-2dde-4c3a-bfbd-f18ad8ff91a5', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/85b152ce-2dde-4c3a-bfbd-f18ad8ff91a5', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/85b152ce-2dde-4c3a-bfbd-f18ad8ff91a5', 'rel': 'bookmark'}]}, {'uuid': 'a46d6729-493e-4abe-90fc-48ed0bf78a91', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/a46d6729-493e-4abe-90fc-48ed0bf78a91', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/a46d6729-493e-4abe-90fc-48ed0bf78a91', 'rel': 'bookmark'}]}]} +GET: /v1/deploy_templates?sort_key=name&detail=False {} +GOT:{'deploy_templates': [{'uuid': '3efec7de-2d8f-41b3-a4f3-561a2f605a68', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/3efec7de-2d8f-41b3-a4f3-561a2f605a68', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/3efec7de-2d8f-41b3-a4f3-561a2f605a68', 'rel': 'bookmark'}]}, {'uuid': 'c9bfd85b-89c8-4aea-a0bb-fba7c14bd8d8', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/c9bfd85b-89c8-4aea-a0bb-fba7c14bd8d8', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/c9bfd85b-89c8-4aea-a0bb-fba7c14bd8d8', 'rel': 'bookmark'}]}, {'uuid': 'aa6b0862-0efd-480c-85e7-a7be04d82ddd', 'name': 'CUSTOM_DT3', 'links': [{'href': 'http://localhost/v1/deploy_templates/aa6b0862-0efd-480c-85e7-a7be04d82ddd', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/aa6b0862-0efd-480c-85e7-a7be04d82ddd', 'rel': 'bookmark'}]}]} +GET: /v1/deploy_templates?sort_key=extra {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-70c3886b-161a-4d87-b50f-95183e5c523d +Openstack-Request-Id: req-b228838d-a167-42af-bdc4-4e1abe40b716 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": "2024-01-06T10:56:48.850697+00:00", "updated_at": "2024-01-06T10:56:48.873806+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'}] +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 {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-8a7158fd-b99a-4c2b-8a5f-56649bf37fa4 +Openstack-Request-Id: req-d74e23e9-ca20-48da-b850-cde6492972a4 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.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-e652a4e5-ab0c-4864-9617-cf6ed57a877c +Openstack-Request-Id: req-d1d49362-94e7-494e-be3b-f24ac89aefd7 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": "2024-01-06T10:56:49.000439+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'}] +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/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-ed477a7e-f7c2-4299-876a-cd91205c18fa +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-56e0029f-2965-42b5-bcf7-8096d7f8b607 +Openstack-Request-Id: req-6aead7f3-a51b-44e9-acba-19770021fb00 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 +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-5ef223aa-5dbf-4638-bd98-9fe4b0486f09 +Openstack-Request-Id: req-dc1769fd-ef64-436d-a5b2-68d74fc98db1 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": "2024-01-06T10:56:49.133771+00:00", "updated_at": "2024-01-06T10:56:49.156421+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 +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}"} +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 +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-76135f15-7332-4f7b-a7c2-64db8b83331e +Openstack-Request-Id: req-bf3bfce9-9557-4421-8ce3-2704b2d78ec0 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.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:13.173975+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-8d235566-a2e1-4bde-a32b-48ffef8fd88a +Openstack-Request-Id: req-bf3bfce9-9557-4421-8ce3-2704b2d78ec0 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': '055d86c6-1cf6-4070-93f8-7a018a1a4549', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:13.173975+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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.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_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_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_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.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_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.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.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_utils.TestVendorPassthru.test_check_policy +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy ... 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_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_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.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.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 +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_utils.TestVendorPassthru.test_check_policy_forbidden +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy_forbidden ... 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_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_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.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_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_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_node.TestListNodes.test_get_console_information +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e228b560-faec-4032-bddb-67ad975fc324 +Openstack-Request-Id: req-304c2fb1-fd56-4c3b-bf23-ef396fc4b56f 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": "2024-01-06T10:56:49.310845+00:00", "updated_at": "2024-01-06T10:56:49.334644+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": "055d86c6-1cf6-4070-93f8-7a018a1a4549"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '6552b08a-e034-452b-a3e0-9c0a4b7f3353', 'op': 'replace'}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.48 +{"uuid": "34d32db9-f5e1-4825-8761-d18e689e467a", "created_at": "2025-02-07T17:33:13.280457+00:00", "updated_at": null, "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/34d32db9-f5e1-4825-8761-d18e689e467a", "rel": "self"}, {"href": "http://localhost/nodes/34d32db9-f5e1-4825-8761-d18e689e467a", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/34d32db9-f5e1-4825-8761-d18e689e467a/ports", "rel": "self"}, {"href": "http://localhost/nodes/34d32db9-f5e1-4825-8761-d18e689e467a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/34d32db9-f5e1-4825-8761-d18e689e467a/states", "rel": "self"}, {"href": "http://localhost/nodes/34d32db9-f5e1-4825-8761-d18e689e467a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/34d32db9-f5e1-4825-8761-d18e689e467a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/34d32db9-f5e1-4825-8761-d18e689e467a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/34d32db9-f5e1-4825-8761-d18e689e467a/volume", "rel": "self"}, {"href": "http://localhost/nodes/34d32db9-f5e1-4825-8761-d18e689e467a/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/abc44905-fbe4-428c-9afb-6f239f5140f8 [{'op': 'remove', 'path': '/protected'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-29f6a7fe-3b10-47b7-aac9-a598405c3eb6 +Openstack-Request-Id: req-5635f05b-7cc3-4bec-a926-f3c8f96235db 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': 'dea7c64b-6d31-40b3-b56d-4b3e1ea13b9c', 'op': 'remove'}] +X-Openstack-Ironic-Api-Version: 1.48 +{"uuid": "abc44905-fbe4-428c-9afb-6f239f5140f8", "created_at": "2025-02-07T17:33:13.464283+00:00", "updated_at": null, "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/abc44905-fbe4-428c-9afb-6f239f5140f8", "rel": "self"}, {"href": "http://localhost/nodes/abc44905-fbe4-428c-9afb-6f239f5140f8", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/abc44905-fbe4-428c-9afb-6f239f5140f8/ports", "rel": "self"}, {"href": "http://localhost/nodes/abc44905-fbe4-428c-9afb-6f239f5140f8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/abc44905-fbe4-428c-9afb-6f239f5140f8/states", "rel": "self"}, {"href": "http://localhost/nodes/abc44905-fbe4-428c-9afb-6f239f5140f8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/abc44905-fbe4-428c-9afb-6f239f5140f8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/abc44905-fbe4-428c-9afb-6f239f5140f8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/abc44905-fbe4-428c-9afb-6f239f5140f8/volume", "rel": "self"}, {"href": "http://localhost/nodes/abc44905-fbe4-428c-9afb-6f239f5140f8/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/4dcef4e9-cb5e-4e0e-98a2-cbee49c2ccd3 [{'path': '/protected', 'value': 'True', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-fa88c3c3-d8bc-410d-8419-b8212ecd12a3 +Openstack-Request-Id: req-cd30b867-f5ac-4da4-9bac-f36360dd2ecc 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": "2024-01-06T10:56:49.440549+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': '93b01c4e-2bba-4275-9d30-90148ca9a0a3', 'op': 'remove'}, {'path': '/portgroup_uuid', 'value': '3a1a9bdf-d09e-4e4a-8f05-0ddf8b9195d5', 'op': 'add'}] -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 +X-Openstack-Ironic-Api-Version: 1.48 +{"uuid": "4dcef4e9-cb5e-4e0e-98a2-cbee49c2ccd3", "created_at": "2025-02-07T17:33:13.639441+00:00", "updated_at": null, "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/4dcef4e9-cb5e-4e0e-98a2-cbee49c2ccd3", "rel": "self"}, {"href": "http://localhost/nodes/4dcef4e9-cb5e-4e0e-98a2-cbee49c2ccd3", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4dcef4e9-cb5e-4e0e-98a2-cbee49c2ccd3/ports", "rel": "self"}, {"href": "http://localhost/nodes/4dcef4e9-cb5e-4e0e-98a2-cbee49c2ccd3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4dcef4e9-cb5e-4e0e-98a2-cbee49c2ccd3/states", "rel": "self"}, {"href": "http://localhost/nodes/4dcef4e9-cb5e-4e0e-98a2-cbee49c2ccd3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4dcef4e9-cb5e-4e0e-98a2-cbee49c2ccd3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4dcef4e9-cb5e-4e0e-98a2-cbee49c2ccd3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4dcef4e9-cb5e-4e0e-98a2-cbee49c2ccd3/volume", "rel": "self"}, {"href": "http://localhost/nodes/4dcef4e9-cb5e-4e0e-98a2-cbee49c2ccd3/volume", "rel": "bookmark"}]} +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_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.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.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_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_port.TestPatch.test_update_not_found +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found ... 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.TestPatch.test_update_protected_string_invalid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string_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.conductor.test_manager.VifTestCase.test_vif_attach +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach ... 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_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.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_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.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.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.TestVendorPassthru.test_method_not_specified +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified ... 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.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.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.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-fbac42ae-c502-40f8-a3f1-af0bf5056879 +Openstack-Request-Id: req-fd9bdd8b-e3f2-4bf4-887d-cb6c3b2743f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5d296ebe-704a-4591-815a-e40d11ab3571", "created_at": "2024-01-06T10:56:49.380888+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/5d296ebe-704a-4591-815a-e40d11ab3571", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/ports", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/states", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/volume", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571 [{'path': '/management_interface', 'op': 'remove'}] -GOT:Response: 200 OK +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:13.448265+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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 Content-Type: application/json -Openstack-Request-Id: req-747d0385-dcf4-41c6-b735-11c052707ac2 +Openstack-Request-Id: req-fd9bdd8b-e3f2-4bf4-887d-cb6c3b2743f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5d296ebe-704a-4591-815a-e40d11ab3571", "created_at": "2024-01-06T10:56:49.380888+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/5d296ebe-704a-4591-815a-e40d11ab3571", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/ports", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/states", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/volume", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571 [{'path': '/power_interface', 'op': 'remove'}] -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.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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:13.448265+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-6580161f-dc38-429d-8be9-b8db804200e6 +Openstack-Request-Id: req-a83ab8db-745a-46b9-94e9-879d3cb86c46 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5d296ebe-704a-4591-815a-e40d11ab3571", "created_at": "2024-01-06T10:56:49.380888+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/5d296ebe-704a-4591-815a-e40d11ab3571", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/ports", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/states", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/volume", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571 [{'path': '/raid_interface', 'op': 'remove'}] -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": "7cfe9e30-1664-4e88-bc70-e75f8ca28206", "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 +GOT:{'ports': [{'uuid': '002b0cf5-3c46-493d-a029-c156b48431cf', 'created_at': '2025-02-07T17:33:13.186897+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/002b0cf5-3c46-493d-a029-c156b48431cf', 'rel': 'self'}, {'href': 'http://localhost/ports/002b0cf5-3c46-493d-a029-c156b48431cf', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '8b40bdd0-e76a-4a5c-9183-098c7c857afc'}, {'uuid': 'ab82a58f-88bf-4e31-9b0c-639164577e24', 'created_at': '2025-02-07T17:33:13.188764+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/ab82a58f-88bf-4e31-9b0c-639164577e24', 'rel': 'self'}, {'href': 'http://localhost/ports/ab82a58f-88bf-4e31-9b0c-639164577e24', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '8b40bdd0-e76a-4a5c-9183-098c7c857afc'}]} +GET: /v1/portgroups/8b40bdd0-e76a-4a5c-9183-098c7c857afc/ports?limit=1 {} +GOT:{'ports': [{'uuid': '002b0cf5-3c46-493d-a029-c156b48431cf', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/002b0cf5-3c46-493d-a029-c156b48431cf', 'rel': 'self'}, {'href': 'http://localhost/ports/002b0cf5-3c46-493d-a029-c156b48431cf', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=002b0cf5-3c46-493d-a029-c156b48431cf'} +GET: /v1/portgroups/8b40bdd0-e76a-4a5c-9183-098c7c857afc/ports/61a68184-0a99-434f-a25d-588bbb1d77ff {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-12858576-f9ed-451e-9ee4-2ce3fb63b852 +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/portgroups/8b40bdd0-e76a-4a5c-9183-098c7c857afc/ports/2440f604-8dd6-4a66-a405-66ce15bc3551 {} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-418ac65d-7014-4b74-a693-ac1fe5679b73 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5d296ebe-704a-4591-815a-e40d11ab3571", "created_at": "2024-01-06T10:56:49.380888+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/5d296ebe-704a-4591-815a-e40d11ab3571", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/ports", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/states", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/volume", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571 [{'path': '/vendor_interface', 'op': 'remove'}] -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.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_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_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.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.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_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.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.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_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_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.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.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.TestListNodes.test_get_nodes_by_provision_state -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state ... ok -GOT:{'deploy_templates': [{'uuid': '14f73a9c-c0b0-4cf8-bea7-52f6b56e278e', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/14f73a9c-c0b0-4cf8-bea7-52f6b56e278e', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/14f73a9c-c0b0-4cf8-bea7-52f6b56e278e', 'rel': 'bookmark'}]}, {'uuid': '413424ec-13b2-4188-9c9a-1f54470bea7e', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/413424ec-13b2-4188-9c9a-1f54470bea7e', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/413424ec-13b2-4188-9c9a-1f54470bea7e', 'rel': 'bookmark'}]}, {'uuid': '5b738ccd-3af5-4a90-9e10-7f9d597d8af7', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/5b738ccd-3af5-4a90-9e10-7f9d597d8af7', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/5b738ccd-3af5-4a90-9e10-7f9d597d8af7', 'rel': 'bookmark'}]}]} -GET: /v1/deploy_templates?sort_key=name&detail=False {} -GOT:{'deploy_templates': [{'uuid': 'dbc560f3-e2e0-49a8-9bfc-7d8bb00c5658', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/dbc560f3-e2e0-49a8-9bfc-7d8bb00c5658', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/dbc560f3-e2e0-49a8-9bfc-7d8bb00c5658', 'rel': 'bookmark'}]}, {'uuid': '7e7405db-fe33-4bdf-bd74-fcdb2b4f9bab', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/7e7405db-fe33-4bdf-bd74-fcdb2b4f9bab', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/7e7405db-fe33-4bdf-bd74-fcdb2b4f9bab', 'rel': 'bookmark'}]}, {'uuid': '5987386f-79c3-4944-b0b3-9f22744f473e', 'name': 'CUSTOM_DT3', 'links': [{'href': 'http://localhost/v1/deploy_templates/5987386f-79c3-4944-b0b3-9f22744f473e', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/5987386f-79c3-4944-b0b3-9f22744f473e', 'rel': 'bookmark'}]}]} -GET: /v1/deploy_templates?sort_key=extra {} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +GET: /v1/portgroups/549182c4-8395-457e-ba3c-b9cf0b235de2/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-33637bd0-a1ac-47d2-8f07-b7ac691eec57 +Openstack-Request-Id: req-709581f6-99e0-47ff-8e4d-3da3a1e6f479 X-Openstack-Ironic-Api-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\": \"Portgroup eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} +GET: /v1/portgroups?sort_key=uuid {} +GOT:{'portgroups': [{'uuid': '15757e46-e308-4bfc-8926-dc0ebf22a8d4', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/15757e46-e308-4bfc-8926-dc0ebf22a8d4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/15757e46-e308-4bfc-8926-dc0ebf22a8d4', 'rel': 'bookmark'}]}, {'uuid': 'b2f5d236-9baa-4333-bdc3-63b7690b37f0', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/b2f5d236-9baa-4333-bdc3-63b7690b37f0', 'rel': 'self'}, {'href': 'http://localhost/portgroups/b2f5d236-9baa-4333-bdc3-63b7690b37f0', 'rel': 'bookmark'}]}, {'uuid': 'e05c8705-fabc-4a40-a54c-864ebce3e2f7', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/e05c8705-fabc-4a40-a54c-864ebce3e2f7', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e05c8705-fabc-4a40-a54c-864ebce3e2f7', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups?sort_key=mode {} +GOT:{'portgroups': [{'uuid': 'd667ff71-ebba-47dc-9bd0-69ab61abd7a1', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/d667ff71-ebba-47dc-9bd0-69ab61abd7a1', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d667ff71-ebba-47dc-9bd0-69ab61abd7a1', 'rel': 'bookmark'}]}, {'uuid': '74be008a-ef28-43d2-9d81-525d506ec2b7', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/74be008a-ef28-43d2-9d81-525d506ec2b7', 'rel': 'self'}, {'href': 'http://localhost/portgroups/74be008a-ef28-43d2-9d81-525d506ec2b7', 'rel': 'bookmark'}]}, {'uuid': 'e114ff92-6722-447b-8c37-6f2c3a611447', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/e114ff92-6722-447b-8c37-6f2c3a611447', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e114ff92-6722-447b-8c37-6f2c3a611447', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-ac220461-e036-4b92-ab31-9fca7ac9cb32 +Openstack-Request-Id: req-37297f4d-f938-4c88-9b30-b60b31935d76 X-Openstack-Ironic-Api-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 {} +GET: /v1/portgroups?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-94f538ef-9180-482a-8e34-b162de486be8 +Openstack-Request-Id: req-b8ac3799-3240-4bf0-81bb-7a47f9bebfbe X-Openstack-Ironic-Api-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}"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} -GOT:Response: 503 Service Unavailable +{"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-618c39f4-e010-4122-81e1-0bcbe1508409 +Openstack-Request-Id: req-acddccaa-7b5a-41d0-ba90-a6524c100640 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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-618c39f4-e010-4122-81e1-0bcbe1508409 +Openstack-Request-Id: req-84179f74-6e0f-40cc-8e2a-59a4e2a81b8b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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": "{\"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-b26788e4-a3ca-4aa4-8fc1-4bf6e1fae9e2 +Openstack-Request-Id: req-b2b44860-95c1-4185-8e50-65465dccad8d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.25 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"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/ {} +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_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 +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '9f1bed24-946d-4433-ad73-31db2f4ae65a', 'op': 'replace'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-b26788e4-a3ca-4aa4-8fc1-4bf6e1fae9e2 +Openstack-Request-Id: req-c3b452ce-fd8c-4e0b-b330-3a351a4a6304 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +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': 'fdfc3633-e8c5-48ea-8197-69893d2cd96a', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-593dd3d4-1785-483f-b385-f68e26485a99 +Openstack-Request-Id: req-ff38b426-4ede-43d0-b662-113f1fa2a72a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:12.838490+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': 'c5cb38ed-7b24-4c36-8aee-6330041654dc', 'op': 'remove'}, {'path': '/portgroup_uuid', 'value': 'bb3619e0-b4a8-4d9d-9fc3-3c7d32fd1c20', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-593dd3d4-1785-483f-b385-f68e26485a99 +Openstack-Request-Id: req-73982896-09e5-4b7b-bc35-3f0067673607 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 {} -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.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_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_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_network.GetPortgroupByIdTestCase.test_portgroup_by_id -ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id ... 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.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.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_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.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_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_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.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_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.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.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.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.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.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.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.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.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.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.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.test_healthcheck.TestHealthcheckMiddleware.test_disable -ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable ... ok -GET: /v1/ports/02426ef9-3a99-4c9b-867d-a331ec9f0132 {} -GOT:{'uuid': '02426ef9-3a99-4c9b-867d-a331ec9f0132', 'created_at': '2024-01-06T10:56:48.869442+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://foo/v1/ports/02426ef9-3a99-4c9b-867d-a331ec9f0132', 'rel': 'self'}, {'href': 'http://foo/ports/02426ef9-3a99-4c9b-867d-a331ec9f0132', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /ports/02426ef9-3a99-4c9b-867d-a331ec9f0132 {} -GOT:{'uuid': '02426ef9-3a99-4c9b-867d-a331ec9f0132', 'created_at': '2024-01-06T10:56:48.869442+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://foo/v1/ports/02426ef9-3a99-4c9b-867d-a331ec9f0132', 'rel': 'self'}, {'href': 'http://foo/ports/02426ef9-3a99-4c9b-867d-a331ec9f0132', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/ports/detail {} -GOT:{'ports': [{'uuid': '32f0dcdf-72dc-452c-bded-b345f00171e8', 'created_at': '2024-01-06T10:56:48.955833+00:00', 'updated_at': None, 'address': '66:44:55:33:11:22', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/32f0dcdf-72dc-452c-bded-b345f00171e8', 'rel': 'self'}, {'href': 'http://localhost/ports/32f0dcdf-72dc-452c-bded-b345f00171e8', '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": "2025-02-07T17:33:12.992076+00:00", "updated_at": "2025-02-07T17:33:13.021235+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": "bb3619e0-b4a8-4d9d-9fc3-3c7d32fd1c20"} +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-1547a20c-85af-4c98-a6a2-5a9eaa28ee42 +Openstack-Request-Id: req-adf0ecf4-9b01-48b8-8da4-16da2bfded80 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": "2025-02-07T17:33:13.131057+00:00", "updated_at": "2025-02-07T17:33:13.153721+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-a6f475f5-7df3-478f-9d43-2658989434e9 +Openstack-Request-Id: req-d18da036-9121-4b35-a51c-a8493d1d49b8 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': '2024-01-06T10:56:49.182749+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': '790d95c8-3ddd-4d93-99cd-f5e6d7f76aed', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/790d95c8-3ddd-4d93-99cd-f5e6d7f76aed', 'rel': 'self'}, {'href': 'http://localhost/ports/790d95c8-3ddd-4d93-99cd-f5e6d7f76aed', 'rel': 'bookmark'}]}, {'uuid': '8877afbd-8043-4e4a-b433-810be65aa1bf', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/8877afbd-8043-4e4a-b433-810be65aa1bf', 'rel': 'self'}, {'href': 'http://localhost/ports/8877afbd-8043-4e4a-b433-810be65aa1bf', 'rel': 'bookmark'}]}, {'uuid': '14f06b1c-0b7b-4fbd-950a-14719b46733a', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/14f06b1c-0b7b-4fbd-950a-14719b46733a', 'rel': 'self'}, {'href': 'http://localhost/ports/14f06b1c-0b7b-4fbd-950a-14719b46733a', 'rel': 'bookmark'}]}, {'uuid': 'a649538f-4d66-4299-8ae6-dc28b6aab71a', 'address': '52:54:00:cf:2d:33', 'links': [{'href': 'http://localhost/v1/ports/a649538f-4d66-4299-8ae6-dc28b6aab71a', 'rel': 'self'}, {'href': 'http://localhost/ports/a649538f-4d66-4299-8ae6-dc28b6aab71a', 'rel': 'bookmark'}]}, {'uuid': 'e9496714-53ee-466e-a342-8efcfadb67e4', 'address': '52:54:00:cf:2d:34', 'links': [{'href': 'http://localhost/v1/ports/e9496714-53ee-466e-a342-8efcfadb67e4', 'rel': 'self'}, {'href': 'http://localhost/ports/e9496714-53ee-466e-a342-8efcfadb67e4', 'rel': 'bookmark'}]}]} -GET: /v1/ports {} -GOT:{'ports': [{'uuid': '129ef5cd-3e48-4ee6-9972-424cd2347b6a', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/129ef5cd-3e48-4ee6-9972-424cd2347b6a', 'rel': 'self'}, {'href': 'http://localhost/ports/129ef5cd-3e48-4ee6-9972-424cd2347b6a', 'rel': 'bookmark'}]}, {'uuid': 'b482ddbf-06fe-49af-a199-33172b45e77a', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/b482ddbf-06fe-49af-a199-33172b45e77a', 'rel': 'self'}, {'href': 'http://localhost/ports/b482ddbf-06fe-49af-a199-33172b45e77a', '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': '79393693-add6-431f-8990-e994d3f238e1', 'address': 'aa:bb:cc:dd:ee:f1', 'links': [{'href': 'http://localhost/v1/ports/79393693-add6-431f-8990-e994d3f238e1', 'rel': 'self'}, {'href': 'http://localhost/ports/79393693-add6-431f-8990-e994d3f238e1', '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-2fb90b4d-9c5e-4c7b-b947-68ba000c8a8e +Openstack-Request-Id: req-32f62182-9906-4996-b56c-cadaec573f1c 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': 'e55e76a2-a625-4665-877b-d8ccab62edda', 'address': 'aa:bb:cc:dd:ee:f1', 'links': [{'href': 'http://localhost/v1/ports/e55e76a2-a625-4665-877b-d8ccab62edda', 'rel': 'self'}, {'href': 'http://localhost/ports/e55e76a2-a625-4665-877b-d8ccab62edda', '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 {} +{"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 -{"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 +Openstack-Request-Id: req-6a37d345-7326-4d6d-b1b9-e1f011152cda +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'}] +GOT:Response: 200 OK Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/ports?sort_key=uuid {} -GOT:{'ports': [{'uuid': '22c5c797-73bf-43ab-a92d-dc4c2b1389a9', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/22c5c797-73bf-43ab-a92d-dc4c2b1389a9', 'rel': 'self'}, {'href': 'http://localhost/ports/22c5c797-73bf-43ab-a92d-dc4c2b1389a9', 'rel': 'bookmark'}]}, {'uuid': '7cf74c20-9e70-46b5-ae17-07d23c14aba1', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/7cf74c20-9e70-46b5-ae17-07d23c14aba1', 'rel': 'self'}, {'href': 'http://localhost/ports/7cf74c20-9e70-46b5-ae17-07d23c14aba1', 'rel': 'bookmark'}]}, {'uuid': '8df052e8-4d0f-4073-b443-296024310b16', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/8df052e8-4d0f-4073-b443-296024310b16', 'rel': 'self'}, {'href': 'http://localhost/ports/8df052e8-4d0f-4073-b443-296024310b16', 'rel': 'bookmark'}]}]} -GET: /v1/ports?sort_key=pxe_enabled {} -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.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.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.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.api.test_healthcheck.TestHealthcheckMiddleware.test_enable -ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable ... 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': '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 +Openstack-Request-Id: req-ea1d5f84-b7c3-4768-9b43-4a3504b289e7 +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-07T17:33:13.502687+00:00", "updated_at": "2025-02-07T17:33:13.526450+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-b57d1405-3ce7-4e89-b4fb-21dba493fac2 +Openstack-Request-Id: req-12df0d38-b00f-4de0-bd21-e041e92c2c01 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.38 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:13.604854+00:00", "updated_at": "2025-02-07T17:33:13.632922+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 -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-949e1af1-4d47-46e8-996c-346f87c95554 +Openstack-Request-Id: req-c6705513-c38d-4ae2-895f-db49d345ea39 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-06T10:56:49.401572+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'} -GOT:Response: 406 Not Acceptable +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/05e7ca67-6813-4723-8b3a-e6fd7e020a29 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4a37d8c3-e543-4715-879c-aed453742ffb +Openstack-Request-Id: req-5eab0c78-2cfd-48c8-96e3-45fd26dd5984 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 +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 05e7ca67-6813-4723-8b3a-e6fd7e020a29 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'}] +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.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.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_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.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_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.VifTestCase.test_vif_attach_raises_network_error +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_network_error ... 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_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_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.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_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.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.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_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.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_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.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv4 +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv4 ... 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.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.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_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_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_node.TestPatch.test_update_resource_class +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class ... 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_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_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.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.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_neutron.TestNeutronNetworkActions.test__uncidr_ipv6 +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv6 ... 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.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_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_provision_already_in_progress +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_progress ... 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.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.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_node.TestListNodes.test_get_description_field +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_description_field ... 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.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.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 +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.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 +ACL Test GOT Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-0e0257a7-5de6-4aa2-a93e-8ecadd869bff +Openstack-Request-Id: req-a83ab8db-745a-46b9-94e9-879d3cb86c46 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-06T10:56:49.516145+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 +{"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": "7cfe9e30-1664-4e88-bc70-e75f8ca28206", "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-67495a2e-28b1-44d1-80ba-1aac73c0347f +Openstack-Request-Id: req-28e274d2-8209-4dde-9c9a-d40e285e91e1 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.80 +{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:14.388541+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-07T17:33:14.392436+00:00", "updated_at": "2025-02-07T17:33:14.397989+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": "dd56bac6-706a-458e-a4a7-07abefe64102", "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": "dd56bac6-706a-458e-a4a7-07abefe64102", "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-07T17:33:14.417555+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-b22e8df9-a406-49de-9df9-b44258dd3350 +Openstack-Request-Id: req-28e274d2-8209-4dde-9c9a-d40e285e91e1 X-Openstack-Ironic-Api-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 +{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:14.388541+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-07T17:33:14.392436+00:00", "updated_at": "2025-02-07T17:33:14.397989+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": "dd56bac6-706a-458e-a4a7-07abefe64102", "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": "dd56bac6-706a-458e-a4a7-07abefe64102", "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-07T17:33:14.417555+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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.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_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_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.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.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.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_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.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.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.conductor.test_manager.VifTestCase.test_vif_detach +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach ... 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.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.api.controllers.v1.test_volume_target.TestPatch.test_add_multi +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi ... 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': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-42d50a0c-f3b2-43b8-9a76-8a739af7f06d +Openstack-Request-Id: req-a4b03a71-afbd-4329-b9e7-8fa028460c61 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 -Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-21fcc3a9-cf3a-43d1-8cee-0d9413b45ef0 +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-785a9c6c-1d60-4593-b87d-59e5a53b85bf 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-06T10:56:49.787386+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'} -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.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_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.TestPatch.test_reset_network_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_network_interface ... 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.common.test_args.ValidateTypesTest.test_types -ironic.tests.unit.common.test_args.ValidateTypesTest.test_types ... ok -GOT:{'nodes': [{'uuid': '8a3a3dae-23a1-4dff-89db-d5c6497692ff', 'created_at': '2024-01-06T10:56:49.453685+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/8a3a3dae-23a1-4dff-89db-d5c6497692ff', 'rel': 'self'}, {'href': 'http://localhost/nodes/8a3a3dae-23a1-4dff-89db-d5c6497692ff', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/8a3a3dae-23a1-4dff-89db-d5c6497692ff/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/8a3a3dae-23a1-4dff-89db-d5c6497692ff/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/8a3a3dae-23a1-4dff-89db-d5c6497692ff/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/8a3a3dae-23a1-4dff-89db-d5c6497692ff/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/8a3a3dae-23a1-4dff-89db-d5c6497692ff/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/8a3a3dae-23a1-4dff-89db-d5c6497692ff/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/8a3a3dae-23a1-4dff-89db-d5c6497692ff/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/8a3a3dae-23a1-4dff-89db-d5c6497692ff/volume', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?owner=bob {} -GOT:{'nodes': [{'uuid': 'e2a30303-68b2-442f-9920-9f04a3772f91', 'created_at': '2024-01-06T10:56:49.458446+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/e2a30303-68b2-442f-9920-9f04a3772f91', 'rel': 'self'}, {'href': 'http://localhost/nodes/e2a30303-68b2-442f-9920-9f04a3772f91', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/e2a30303-68b2-442f-9920-9f04a3772f91/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e2a30303-68b2-442f-9920-9f04a3772f91/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e2a30303-68b2-442f-9920-9f04a3772f91/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e2a30303-68b2-442f-9920-9f04a3772f91/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/e2a30303-68b2-442f-9920-9f04a3772f91/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/e2a30303-68b2-442f-9920-9f04a3772f91/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/e2a30303-68b2-442f-9920-9f04a3772f91/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/e2a30303-68b2-442f-9920-9f04a3772f91/volume', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?owner=fred {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-60d5145a-f86c-4c9f-9a8d-fc27b9b5a530 + +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-db956a03-0cd8-404a-9691-6a7ca46db83c 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 -Content-Type: application/json -Openstack-Request-Id: req-306ff05b-e0f6-407b-a640-ffca93944bc4 +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'}]} +GOT:Response: 204 No Content +Openstack-Request-Id: req-51d7910c-ea3e-43ba-8e95-427f9c5d307d 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': '4c5e0485-939a-4c27-98de-bf0b5b452622', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/4c5e0485-939a-4c27-98de-bf0b5b452622', 'rel': 'self'}, {'href': 'http://localhost/nodes/4c5e0485-939a-4c27-98de-bf0b5b452622', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?provision_state=deploying {} -GOT:{'nodes': [{'uuid': 'bd484528-590f-4d1b-953b-4359edc65af4', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'deploying', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/bd484528-590f-4d1b-953b-4359edc65af4', 'rel': 'self'}, {'href': 'http://localhost/nodes/bd484528-590f-4d1b-953b-4359edc65af4', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?provision_state=test {} -GOT:Response: 406 Not Acceptable +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 Content-Type: application/json -Openstack-Request-Id: req-1d53ba05-1210-425f-9b7f-0f26ab861573 +Openstack-Request-Id: req-a9ea797f-851d-4c3c-be82-63fbbd507d11 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': '33e6bb7b-d5da-4b12-a9e9-c9a7723028f0', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/33e6bb7b-d5da-4b12-a9e9-c9a7723028f0', 'rel': 'self'}, {'href': 'http://localhost/nodes/33e6bb7b-d5da-4b12-a9e9-c9a7723028f0', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?resource_class=bar {} -GOT:{'nodes': [{'uuid': '2c2986c6-1f09-431f-b984-5bc55a2e2410', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/2c2986c6-1f09-431f-b984-5bc55a2e2410', 'rel': 'self'}, {'href': 'http://localhost/nodes/2c2986c6-1f09-431f-b984-5bc55a2e2410', '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_port.TestListPorts.test_sort_key_invalid -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_invalid ... 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_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.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.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 -GOT:Response: 200 OK +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-8b46a84a-14bf-43e1-81e0-1dc77e7079fa +Openstack-Request-Id: req-47f1f735-f344-45e6-9be4-adfe2ea939e1 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-06T10:56:49.602642+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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 +{"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-8b46a84a-14bf-43e1-81e0-1dc77e7079fa +Openstack-Request-Id: req-a054c0b7-bb97-4830-803c-98358305522b 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-06T10:56:49.602642+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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 +{"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-1e245c50-2107-4a9f-b013-a8b4dc09c32f +Openstack-Request-Id: req-bb0ae521-7479-43b1-9b0d-85e7bcc7e036 X-Openstack-Ironic-Api-Maximum-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\": \"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-1e245c50-2107-4a9f-b013-a8b4dc09c32f +Openstack-Request-Id: req-7ca1bf99-d5c8-44f3-b025-78fe258e9479 X-Openstack-Ironic-Api-Maximum-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.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.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.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.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_ramdisk.TestLookup.test_fast_deploy_lookup -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_fast_deploy_lookup ... 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.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_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_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.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_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.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 -GOT:Response: 200 OK +{"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-3acf8a3b-4a66-4cf0-b0a0-271cc5b8303b +Openstack-Request-Id: req-1c578122-c4f2-46f7-99a8-5929a94cb852 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5d296ebe-704a-4591-815a-e40d11ab3571", "created_at": "2024-01-06T10:56:49.380888+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/5d296ebe-704a-4591-815a-e40d11ab3571", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/ports", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/states", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/volume", "rel": "self"}, {"href": "http://localhost/nodes/5d296ebe-704a-4591-815a-e40d11ab3571/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-ea4a144c-3aa9-4e51-82ec-0a9077312141 +{"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-8668e56d-7329-4920-b0a4-dd6657497cad 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'}] +X-Openstack-Ironic-Api-Version: 1.80 + +POST: /v1/events {'events': [{'event': 'network.unbind_port', 'UNKNOWN': 'EVENT_PROPERTY'}]} +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.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.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_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.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.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.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 +PATCH: /v1/nodes/773e762e-8cad-47d1-b485-b9e07044af34 [{'path': '/protected', 'value': 'YeahNahGood', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-855c8d71-264d-4495-9e7a-69a0e5ac6780 +Openstack-Request-Id: req-90863a00-379f-4f91-9df7-9e2cb12fa501 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/b06309e7-03bc-4b4b-85be-a06523790b75 [{'path': '/network_interface', 'op': 'remove'}] +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/7de1b2a9-fd2b-4d11-b8e9-593bbc057c75 [{'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-90789bfe-a777-42a5-bf01-5869ffb87697 +Openstack-Request-Id: req-f8d6b4a0-bb84-4fcf-9329-6b9df34c889a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "b06309e7-03bc-4b4b-85be-a06523790b75", "created_at": "2024-01-06T10:56:49.795731+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/b06309e7-03bc-4b4b-85be-a06523790b75", "rel": "self"}, {"href": "http://localhost/nodes/b06309e7-03bc-4b4b-85be-a06523790b75", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b06309e7-03bc-4b4b-85be-a06523790b75/ports", "rel": "self"}, {"href": "http://localhost/nodes/b06309e7-03bc-4b4b-85be-a06523790b75/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b06309e7-03bc-4b4b-85be-a06523790b75/states", "rel": "self"}, {"href": "http://localhost/nodes/b06309e7-03bc-4b4b-85be-a06523790b75/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b06309e7-03bc-4b4b-85be-a06523790b75/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b06309e7-03bc-4b4b-85be-a06523790b75/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b06309e7-03bc-4b4b-85be-a06523790b75/volume", "rel": "self"}, {"href": "http://localhost/nodes/b06309e7-03bc-4b4b-85be-a06523790b75/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/02e7e935-3c12-4dbc-bd8f-ef724304a292 [{'path': '/storage_interface', 'op': 'remove'}] -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.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config -ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config ... 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_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.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_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_portgroup.TestDelete.test_delete_portgroup_byaddress -ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byaddress ... 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_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_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.conductor.test_allocations.AllocationTestCase.test_create_allocation -ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation ... 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 +X-Openstack-Ironic-Api-Version: 1.48 +{"uuid": "7de1b2a9-fd2b-4d11-b8e9-593bbc057c75", "created_at": "2025-02-07T17:33:14.008544+00:00", "updated_at": null, "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/7de1b2a9-fd2b-4d11-b8e9-593bbc057c75", "rel": "self"}, {"href": "http://localhost/nodes/7de1b2a9-fd2b-4d11-b8e9-593bbc057c75", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7de1b2a9-fd2b-4d11-b8e9-593bbc057c75/ports", "rel": "self"}, {"href": "http://localhost/nodes/7de1b2a9-fd2b-4d11-b8e9-593bbc057c75/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7de1b2a9-fd2b-4d11-b8e9-593bbc057c75/states", "rel": "self"}, {"href": "http://localhost/nodes/7de1b2a9-fd2b-4d11-b8e9-593bbc057c75/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7de1b2a9-fd2b-4d11-b8e9-593bbc057c75/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7de1b2a9-fd2b-4d11-b8e9-593bbc057c75/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7de1b2a9-fd2b-4d11-b8e9-593bbc057c75/volume", "rel": "self"}, {"href": "http://localhost/nodes/7de1b2a9-fd2b-4d11-b8e9-593bbc057c75/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/6a8a6f42-eb0e-48d1-adc9-e79d17b7b726 [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e27b3aa0-be6c-4f4e-a8c0-5b6ac909daaa +Openstack-Request-Id: req-d11e6472-096f-43cb-b698-adbc5a9447d5 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-06T10:56:49.870542+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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 +X-Openstack-Ironic-Api-Version: 1.21 +{"uuid": "6a8a6f42-eb0e-48d1-adc9-e79d17b7b726", "created_at": "2025-02-07T17:33:14.218856+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/6a8a6f42-eb0e-48d1-adc9-e79d17b7b726", "rel": "self"}, {"href": "http://localhost/nodes/6a8a6f42-eb0e-48d1-adc9-e79d17b7b726", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6a8a6f42-eb0e-48d1-adc9-e79d17b7b726/ports", "rel": "self"}, {"href": "http://localhost/nodes/6a8a6f42-eb0e-48d1-adc9-e79d17b7b726/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6a8a6f42-eb0e-48d1-adc9-e79d17b7b726/states", "rel": "self"}, {"href": "http://localhost/nodes/6a8a6f42-eb0e-48d1-adc9-e79d17b7b726/states", "rel": "bookmark"}]} +PATCH: /v1/nodes/1f7ba6f6-c452-4ba5-b8de-63c8d104b820 [{'path': '/resource_class', 'value': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e27b3aa0-be6c-4f4e-a8c0-5b6ac909daaa +Openstack-Request-Id: req-9ad80b9c-ac88-47f1-9e40-2d35cc6418f0 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-06T10:56:49.870542+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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.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.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_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_portgroup.TestDelete.test_delete_portgroup_byid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byid ... 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_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.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.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_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.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.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.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_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_port.TestPatch.test_update_port_address_normalized -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_port_address_normalized ... ok -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.21 +{"uuid": "1f7ba6f6-c452-4ba5-b8de-63c8d104b820", "created_at": "2025-02-07T17:33:14.431058+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/1f7ba6f6-c452-4ba5-b8de-63c8d104b820", "rel": "self"}, {"href": "http://localhost/nodes/1f7ba6f6-c452-4ba5-b8de-63c8d104b820", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1f7ba6f6-c452-4ba5-b8de-63c8d104b820/ports", "rel": "self"}, {"href": "http://localhost/nodes/1f7ba6f6-c452-4ba5-b8de-63c8d104b820/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1f7ba6f6-c452-4ba5-b8de-63c8d104b820/states", "rel": "self"}, {"href": "http://localhost/nodes/1f7ba6f6-c452-4ba5-b8de-63c8d104b820/states", "rel": "bookmark"}]} +PATCH: /v1/nodes/9886fc01-83bb-4636-9723-a71573c5a42a [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-3ec538b3-a6e7-42d1-81e2-e0c685f1f9f2 +Openstack-Request-Id: req-2f5fa4e3-2996-4b22-829b-c60c5f2ce8f9 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-06T10:56:46.702895+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/e0699533-fafe-40af-b417-84fff7766fea [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.20 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/4d0bd40d-6e37-43b5-8032-17f27f4eb910 [{'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 +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_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.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 + +API ACL Testing Path get /v1/nodes/detail +GET: /v1/nodes/detail {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-dd3d60a5-2be1-473d-9ff9-b647a6ceb6cf +Openstack-Request-Id: req-00e073c8-d100-4493-ab74-4e7adb87df0d X-Openstack-Ironic-Api-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 e0699533-fafe-40af-b417-84fff7766fea could not be found.\", \"debuginfo\": null}"} -GET: / {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-d613d5d3-8a6a-492d-9c59-0bd465783640 -{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} -GET: / {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-e00168bb-ce1d-4135-8347-a7d1d8f5cc1b -{"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} -GET: / {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-a44a53c2-cf28-48c9-a829-e93a367d3a88 -{"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} -GET: / {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-891f1d17-da8e-42ca-8626-a23a79f8924f -{"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-d54b8f30-e49f-4b73-a190-a3ec86c6acea -{"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-172d198e-1866-4423-9a3d-a9fdcdf1a4a6 -{"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-d5d476a0-e67d-4261-98d1-20f772172fd3 -{"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-ad409ba4-cb43-4e85-b43e-bd4093092733 -{"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-3959afeb-14d1-4fdb-bc7b-746248155c00 -{"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-cabbd3c4-7db6-4af3-9cc6-3dcb9e296860 -{"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-6e73749a-c5cc-48d9-aabd-19b9847cd583 -{"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\"}"} -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.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.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.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_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.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.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.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_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.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.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.common.test_nova.NovaApiTestCase.test_power_update_2 -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_2 ... 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_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.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.common.test_nova.NovaApiTestCase.test_power_update_3 -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_3 ... 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.api.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address ... ok -GOT:Response: 200 OK +{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:14.690483+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-07T17:33:14.694539+00:00", "updated_at": "2025-02-07T17:33:14.699827+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": "6101574b-aabe-40ef-8e09-80397486c504", "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": "6101574b-aabe-40ef-8e09-80397486c504", "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-07T17:33:14.718191+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-c7030ad5-3ab1-4291-bc72-d12c565306e1 +Openstack-Request-Id: req-00e073c8-d100-4493-ab74-4e7adb87df0d 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-06T10:56:50.025039+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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 +{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:14.690483+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-07T17:33:14.694539+00:00", "updated_at": "2025-02-07T17:33:14.699827+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": "6101574b-aabe-40ef-8e09-80397486c504", "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": "6101574b-aabe-40ef-8e09-80397486c504", "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-07T17:33:14.718191+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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.VifTestCase.test_vif_detach_raises_network_error +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error ... 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.api.controllers.v1.test_node.TestPut.test_provision_deploy +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_deploy ... ok +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c7030ad5-3ab1-4291-bc72-d12c565306e1 +Openstack-Request-Id: req-c65a3911-267c-4a6c-8f6d-5567f65d6e8a 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-06T10:56:50.025039+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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:update_extra\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-260fc5ff-1a65-427b-86f2-fc81ef7083aa +Openstack-Request-Id: req-c65a3911-267c-4a6c-8f6d-5567f65d6e8a 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": "4bbf6637-c8ec-4ae4-bcc9-e05313da8355", "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.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_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.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_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.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.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.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.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_nova.NovaApiTestCase.test_power_update_5 -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_5 ... 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.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 -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: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-2149fca7-451a-4efa-9321-645ea3e74e1d +Openstack-Request-Id: req-5b59016f-92a8-47e0-a097-cafc1be31ab6 X-Openstack-Ironic-Api-Maximum-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-83c7d3d1-9117-4763-82b6-0d0782cc1ad5 +Openstack-Request-Id: req-5b59016f-92a8-47e0-a097-cafc1be31ab6 X-Openstack-Ironic-Api-Maximum-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\": \"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-e11ad0cd-4610-4d78-b6fc-277e16f413e9 +Openstack-Request-Id: req-1201200b-46a3-4a2d-a068-e805389f3d32 X-Openstack-Ironic-Api-Maximum-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 +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-483b49ce-27e1-4785-af62-ecb1fb7870ea +Openstack-Request-Id: req-1201200b-46a3-4a2d-a068-e805389f3d32 X-Openstack-Ironic-Api-Maximum-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 +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-803961c8-1cd0-41f4-8c5f-4cd735b274d8 +Openstack-Request-Id: req-82b7a711-944c-4f92-85eb-84f23b4f7831 X-Openstack-Ironic-Api-Maximum-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\": \"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-9e09b1ae-eff1-4d6f-a0d8-b983be63193f +Openstack-Request-Id: req-82b7a711-944c-4f92-85eb-84f23b4f7831 X-Openstack-Ironic-Api-Maximum-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\": \"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: 404 Not Found +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-019775ab-c422-403a-a79d-62075783f9c1 +Openstack-Request-Id: req-d17aec19-181a-474a-943b-11a18c0f5a3a X-Openstack-Ironic-Api-Maximum-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-d17aec19-181a-474a-943b-11a18c0f5a3a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-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 Content-Type: application/json -Openstack-Request-Id: req-cc99ac16-24ba-493d-8c0a-88ced9719485 +Openstack-Request-Id: req-7bf539c0-370c-4e3e-968f-cdcff91ad316 X-Openstack-Ironic-Api-Maximum-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 +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4b32dc2e-f675-47fe-8231-9340a82a8163 +Openstack-Request-Id: req-7bf539c0-370c-4e3e-968f-cdcff91ad316 X-Openstack-Ironic-Api-Maximum-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 +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-85eacdf7-610c-4501-ace7-f76a2ae2d20f +Openstack-Request-Id: req-378a3eb0-1c6e-47a5-8031-b73c8ede2cb6 X-Openstack-Ironic-Api-Maximum-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:validate\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-e9ce7630-0e5d-4724-b558-e3174277599e +Openstack-Request-Id: req-378a3eb0-1c6e-47a5-8031-b73c8ede2cb6 X-Openstack-Ironic-Api-Maximum-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 +{"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-f287f561-a034-4ca6-8b2c-517922c3ec42 +Openstack-Request-Id: req-93be9da5-5b5f-443c-a974-9c21ca19b272 X-Openstack-Ironic-Api-Maximum-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 +{"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-203562b9-d96f-457b-a760-8214cb10910b +Openstack-Request-Id: req-93be9da5-5b5f-443c-a974-9c21ca19b272 X-Openstack-Ironic-Api-Maximum-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\": \"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-baf3fa6c-5b67-4ff1-8030-db9a33a95527 +Openstack-Request-Id: req-dca1fb55-9f12-4f12-b3c4-d123fbd55045 X-Openstack-Ironic-Api-Maximum-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'} -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.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.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.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_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_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.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.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_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_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.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.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.TestNeutronNetworkActions.test_add_network_no_port +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_port ... 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.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.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_node.TestListNodes.test_get_lessee_field +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_lessee_field ... 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_manager.VifTestCase.test_vif_detach_validate_error +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_validate_error ... 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_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.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_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_utils.JinjaTemplatingTestCase.test_render_string +ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string ... 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_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.conductor.test_manager.VifTestCase.test_vif_list +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list ... 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_provision_locked_with_correct_state +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_locked_with_correct_state ... ok +ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_with_quotes +ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_with_quotes ... 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-3881fc49-87db-4387-bbc2-c4409e15c342 +Openstack-Request-Id: req-2d62b4bb-eb01-4e7e-a34c-6dec2110421c 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": "2024-01-06T10:56:49.505823+00:00", "updated_at": "2024-01-06T10:56:49.531769+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": "3a1a9bdf-d09e-4e4a-8f05-0ddf8b9195d5"} -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 +{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:15.004753+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-07T17:33:15.010950+00:00", "updated_at": "2025-02-07T17:33:15.019260+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": "71b1b3c3-01cc-4633-bfba-fdbee9e52a2f", "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": "71b1b3c3-01cc-4633-bfba-fdbee9e52a2f", "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-07T17:33:15.052036+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-fda87e13-9d98-4a85-8216-45551e20e62d +Openstack-Request-Id: req-2d62b4bb-eb01-4e7e-a34c-6dec2110421c 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": "2024-01-06T10:56:49.584748+00:00", "updated_at": "2024-01-06T10:56:49.605548+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'}] +X-Openstack-Ironic-Api-Version: 1.80 +{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:15.004753+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-07T17:33:15.010950+00:00", "updated_at": "2025-02-07T17:33:15.019260+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": "71b1b3c3-01cc-4633-bfba-fdbee9e52a2f", "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": "71b1b3c3-01cc-4633-bfba-fdbee9e52a2f", "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-07T17:33:15.052036+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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.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 +GOT:{'nodes': [{'uuid': '7ee24025-8534-414b-938a-de6daad2e163', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/7ee24025-8534-414b-938a-de6daad2e163', 'rel': 'self'}, {'href': 'http://localhost/nodes/7ee24025-8534-414b-938a-de6daad2e163', 'rel': 'bookmark'}]}, {'uuid': 'ea13a19e-3fe4-4a85-be5f-da840be02112', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/ea13a19e-3fe4-4a85-be5f-da840be02112', 'rel': 'self'}, {'href': 'http://localhost/nodes/ea13a19e-3fe4-4a85-be5f-da840be02112', 'rel': 'bookmark'}]}, {'uuid': '83dc761d-9229-4931-83a8-8d7018f61eb5', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/83dc761d-9229-4931-83a8-8d7018f61eb5', 'rel': 'self'}, {'href': 'http://localhost/nodes/83dc761d-9229-4931-83a8-8d7018f61eb5', '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': 'e8686174-d721-4bf5-96d8-962d793b59d1', 'power_state': None, 'target_power_state': None, 'provision_state': 'available', 'target_provision_state': None, 'last_error': None, 'maintenance': False, 'instance_uuid': 'fe2038ff-609d-4315-a55e-4863edaea7e6', 'traits': ['CUSTOM_RAID5', 'CUSTOM_TRAIT1'], 'resource_class': None, 'links': [{'href': 'http://localhost/v1/nodes/e8686174-d721-4bf5-96d8-962d793b59d1', 'rel': 'self'}, {'href': 'http://localhost/nodes/e8686174-d721-4bf5-96d8-962d793b59d1', 'rel': 'bookmark'}]}, {'uuid': '4f1932ed-2a9f-44fd-89de-70d1cc4a9ba9', 'power_state': None, 'target_power_state': None, 'provision_state': 'available', 'target_provision_state': None, 'last_error': None, 'maintenance': False, 'instance_uuid': '77c61488-094a-4ffb-b9df-7a06f600de91', 'traits': ['CUSTOM_RAID5', 'CUSTOM_TRAIT1'], 'resource_class': None, 'links': [{'href': 'http://localhost/v1/nodes/4f1932ed-2a9f-44fd-89de-70d1cc4a9ba9', 'rel': 'self'}, {'href': 'http://localhost/nodes/4f1932ed-2a9f-44fd-89de-70d1cc4a9ba9', 'rel': 'bookmark'}]}, {'uuid': '7312861f-2ded-4ca3-8817-297ab87af010', 'power_state': None, 'target_power_state': None, 'provision_state': 'available', 'target_provision_state': None, 'last_error': None, 'maintenance': False, 'instance_uuid': 'd2965947-c4ce-4536-aa8d-39c07fa86ad5', 'traits': ['CUSTOM_RAID5', 'CUSTOM_TRAIT1'], 'resource_class': None, 'links': [{'href': 'http://localhost/v1/nodes/7312861f-2ded-4ca3-8817-297ab87af010', 'rel': 'self'}, {'href': 'http://localhost/nodes/7312861f-2ded-4ca3-8817-297ab87af010', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?fields=name&limit=2 {} +GOT:{'nodes': [{'name': None, 'links': [{'href': 'http://localhost/v1/nodes/35ba5cc0-1e3c-4241-a2ed-33adf88181a7', 'rel': 'self'}, {'href': 'http://localhost/nodes/35ba5cc0-1e3c-4241-a2ed-33adf88181a7', 'rel': 'bookmark'}]}, {'name': None, 'links': [{'href': 'http://localhost/v1/nodes/e0a72fb8-38a5-4639-a70e-b0f23a42f68f', 'rel': 'self'}, {'href': 'http://localhost/nodes/e0a72fb8-38a5-4639-a70e-b0f23a42f68f', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=e0a72fb8-38a5-4639-a70e-b0f23a42f68f'} +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-a313be89-23ac-40c3-9395-d883194cdc28 +Openstack-Request-Id: req-4aa7a0ed-c4ba-4e96-a1fd-6b91367dd4b7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 +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': '/address', 'value': 'invalid-format', 'op': 'replace'}] -GOT:Response: 400 Bad Request +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-ea100bea-7eb8-4e86-b9e9-5f977c360de3 +Openstack-Request-Id: req-717a98e7-1f2a-4715-8b17-5fa6bf1e6383 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'}] +X-Openstack-Ironic-Api-Version: 1.45 +{"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 Content-Type: application/json -Openstack-Request-Id: req-ac23d429-5568-4ec5-8053-8a88e3d39eb4 +Openstack-Request-Id: req-0df8b5db-290d-4a39-86a9-ee9d314d10ef 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'}] -GOT:Response: 200 OK +{"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-6237a82d-1e51-4fc6-98f3-096756c4958f +Openstack-Request-Id: req-677034f8-f597-4743-8937-12f32fe05608 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": "2024-01-06T10:56:49.838638+00:00", "updated_at": "2024-01-06T10:56:49.861432+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 +{"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-3167aa52-7fd3-424d-8d68-6ea670d91c10 +Openstack-Request-Id: req-4960ef69-a495-413a-88ec-c070c6eb10ae 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": "2024-01-06T10:56:49.925384+00:00", "updated_at": "2024-01-06T10:56:49.956555+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 +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 {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-0ff72fb5-50bd-4498-aa23-dd25d16b0ea8 +Openstack-Request-Id: req-1c204004-1db0-447e-8ebf-04fc8ea8a766 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/1d611a29-4d2b-402c-8340-017c0e29b1b0 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 404 Not Found +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_volume_target.TestPatch.test_add_root +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root ... 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.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.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 +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-14a2950b-4165-412e-a2ae-701fb06e44e2 +Openstack-Request-Id: req-ff789526-ecd9-4b06-99b7-078a46f74576 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 1d611a29-4d2b-402c-8340-017c0e29b1b0 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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'port_id' 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': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-0404a32d-caa6-440f-8c56-c9f0aa756bc1 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-ed620dac-1ece-4a02-bffd-4451abbf9812 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": "2024-01-06T10:56:50.140009+00:00", "updated_at": "2024-01-06T10:56:50.161217+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 +{"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-9f7ab843-e80f-4edf-bcbe-ea5c91d13a86 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-c19340b1-c63d-4271-8f28-3a2767881501 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": "2024-01-06T10:56:50.217468+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.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_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_root.TestV1Routing.test_max_version -ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_max_version ... ok -GOT:{'nodes': [{'uuid': 'b72f7c57-9476-43c6-9447-dfddd1be7aef', 'created_at': '2024-01-06T10:56:49.837260+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/b72f7c57-9476-43c6-9447-dfddd1be7aef', 'rel': 'self'}, {'href': 'http://localhost/nodes/b72f7c57-9476-43c6-9447-dfddd1be7aef', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/b72f7c57-9476-43c6-9447-dfddd1be7aef/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b72f7c57-9476-43c6-9447-dfddd1be7aef/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/b72f7c57-9476-43c6-9447-dfddd1be7aef/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/b72f7c57-9476-43c6-9447-dfddd1be7aef/states', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?resource_class=bar {} -GOT:{'nodes': [{'uuid': '4f1d783b-c837-4662-a26f-a12ab2890e43', 'created_at': '2024-01-06T10:56:49.841905+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/4f1d783b-c837-4662-a26f-a12ab2890e43', 'rel': 'self'}, {'href': 'http://localhost/nodes/4f1d783b-c837-4662-a26f-a12ab2890e43', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/4f1d783b-c837-4662-a26f-a12ab2890e43/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/4f1d783b-c837-4662-a26f-a12ab2890e43/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/4f1d783b-c837-4662-a26f-a12ab2890e43/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/4f1d783b-c837-4662-a26f-a12ab2890e43/states', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?resource_class=fake {} +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:15.200194+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_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.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_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.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.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped +ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped ... 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_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.conductor.test_manager.DestroyNodeTestCase.test_destroy_node +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node ... 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 GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-edcfcdb0-3b9a-4522-abe2-9e28b0057b4f +Openstack-Request-Id: req-f450dc79-e604-4abd-9730-28cd08777ba6 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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +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-4aba1147-b210-456d-a193-893e27f25aa7 +Openstack-Request-Id: req-edffad8c-866f-44f5-b88b-5b96678c65b8 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.27 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"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-52b03a3e-ffd5-401f-bd93-04258e2a0c41 +Openstack-Request-Id: req-e92fc84e-1512-4481-bff3-63c35a23b9e2 X-Openstack-Ironic-Api-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 +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-d8a2f9d9-e4a3-409a-9962-27ffb7c7ae76 +Openstack-Request-Id: req-b649bf62-b055-4d35-b477-2e85cb0340c7 X-Openstack-Ironic-Api-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': '2024-01-06T10:56:50.147894+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.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 -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-11c5fb79-523d-4249-885b-a9d24af2d106 +X-Openstack-Ironic-Api-Version: 1.1 +{"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: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-2a9d8c27-29f0-42ef-8110-e3544593fab4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "02e7e935-3c12-4dbc-bd8f-ef724304a292", "created_at": "2024-01-06T10:56:49.945068+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/02e7e935-3c12-4dbc-bd8f-ef724304a292", "rel": "self"}, {"href": "http://localhost/nodes/02e7e935-3c12-4dbc-bd8f-ef724304a292", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/02e7e935-3c12-4dbc-bd8f-ef724304a292/ports", "rel": "self"}, {"href": "http://localhost/nodes/02e7e935-3c12-4dbc-bd8f-ef724304a292/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/02e7e935-3c12-4dbc-bd8f-ef724304a292/states", "rel": "self"}, {"href": "http://localhost/nodes/02e7e935-3c12-4dbc-bd8f-ef724304a292/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/02e7e935-3c12-4dbc-bd8f-ef724304a292/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/02e7e935-3c12-4dbc-bd8f-ef724304a292/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/02e7e935-3c12-4dbc-bd8f-ef724304a292/volume", "rel": "self"}, {"href": "http://localhost/nodes/02e7e935-3c12-4dbc-bd8f-ef724304a292/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/5b96fc71-bc6a-44c4-b21e-20f47939be9a [{'path': '/instance_uuid', 'op': 'remove'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.27 + +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-4b5c420d-e65c-4db4-8bce-0f17227314c1 +Openstack-Request-Id: req-74d6b5d2-b7e1-472f-a23f-3d78385bf4f4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "5b96fc71-bc6a-44c4-b21e-20f47939be9a", "created_at": "2024-01-06T10:56:50.068106+00:00", "updated_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/5b96fc71-bc6a-44c4-b21e-20f47939be9a", "rel": "self"}, {"href": "http://localhost/nodes/5b96fc71-bc6a-44c4-b21e-20f47939be9a", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5b96fc71-bc6a-44c4-b21e-20f47939be9a/ports", "rel": "self"}, {"href": "http://localhost/nodes/5b96fc71-bc6a-44c4-b21e-20f47939be9a/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/de8e61e2-846d-4b67-940e-694f61b65afc [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +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', 'timeout': 2} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-6e086d17-776d-4acb-85ce-ad7cffa731ff +Openstack-Request-Id: req-e8ad6bd2-ceeb-43ae-9a56-c1e605bd364c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "de8e61e2-846d-4b67-940e-694f61b65afc", "created_at": "2024-01-06T10:56:50.179273+00:00", "updated_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/de8e61e2-846d-4b67-940e-694f61b65afc", "rel": "self"}, {"href": "http://localhost/nodes/de8e61e2-846d-4b67-940e-694f61b65afc", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/de8e61e2-846d-4b67-940e-694f61b65afc/ports", "rel": "self"}, {"href": "http://localhost/nodes/de8e61e2-846d-4b67-940e-694f61b65afc/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/9b702d74-d38e-4e3a-8f98-6e91a0f204c5 [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] -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_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.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_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_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_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_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.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.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.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.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.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.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_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.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 -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_allocations.AllocationTestCase.test_destroy_allocation_without_node -ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_without_node ... 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_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_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_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.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_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.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.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.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.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail ... 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.common.test_network.GetPhysnetsByPortgroupID.test_empty -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty ... 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.conductor.test_allocations.AllocationTestCase.test_resume_allocations -ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_resume_allocations ... ok -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +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-ad3c166a-26be-43a9-96b6-75152abe3691 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.27 + +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-39308425-ee1a-44b6-8ca3-93ced18544ca +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/provision {'target': 'active'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-f8d502c2-0a0e-45a4-8f72-642a95547593 +Openstack-Request-Id: req-6723947f-b159-4c9c-bdfe-92e81fb7148d 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/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=b196bd8e-16ae-4af5-bfe6-051d8cea9355 {} -GOT:{'node': {'uuid': 'b196bd8e-16ae-4af5-bfe6-051d8cea9355', '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/b196bd8e-16ae-4af5-bfe6-051d8cea9355', 'rel': 'self'}, {'href': 'http://localhost/nodes/b196bd8e-16ae-4af5-bfe6-051d8cea9355', '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=b196bd8e-16ae-4af5-bfe6-051d8cea9355 {} -GOT:{'node': {'uuid': 'b196bd8e-16ae-4af5-bfe6-051d8cea9355', '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/b196bd8e-16ae-4af5-bfe6-051d8cea9355', 'rel': 'self'}, {'href': 'http://localhost/nodes/b196bd8e-16ae-4af5-bfe6-051d8cea9355', '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=b196bd8e-16ae-4af5-bfe6-051d8cea9355 {} -GOT:{'node': {'uuid': 'b196bd8e-16ae-4af5-bfe6-051d8cea9355', '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/b196bd8e-16ae-4af5-bfe6-051d8cea9355', 'rel': 'self'}, {'href': 'http://localhost/nodes/b196bd8e-16ae-4af5-bfe6-051d8cea9355', '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': '9a8f7a47-5635-420b-bc27-289f4cc8a55f', '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/9a8f7a47-5635-420b-bc27-289f4cc8a55f', 'rel': 'self'}, {'href': 'http://localhost/nodes/9a8f7a47-5635-420b-bc27-289f4cc8a55f', '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=b3cff6e7-0e88-4e63-bff3-6545d602f058 {} -GOT:{'node': {'uuid': 'b3cff6e7-0e88-4e63-bff3-6545d602f058', '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/b3cff6e7-0e88-4e63-bff3-6545d602f058', 'rel': 'self'}, {'href': 'http://localhost/nodes/b3cff6e7-0e88-4e63-bff3-6545d602f058', '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=f9800a0f-e509-464e-9513-976fbab8d0b6 {} -GOT:{'node': {'uuid': 'f9800a0f-e509-464e-9513-976fbab8d0b6', '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/f9800a0f-e509-464e-9513-976fbab8d0b6', 'rel': 'self'}, {'href': 'http://localhost/nodes/f9800a0f-e509-464e-9513-976fbab8d0b6', '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': '29840745-ef0c-47f7-a4b2-b2f099562a6d', '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/29840745-ef0c-47f7-a4b2-b2f099562a6d', 'rel': 'self'}, {'href': 'http://localhost/nodes/29840745-ef0c-47f7-a4b2-b2f099562a6d', '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=2731a22c-529d-49d4-a6b7-7c1f2b5b322f {} -GOT:{'node': {'uuid': '2731a22c-529d-49d4-a6b7-7c1f2b5b322f', '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/2731a22c-529d-49d4-a6b7-7c1f2b5b322f', 'rel': 'self'}, {'href': 'http://localhost/nodes/2731a22c-529d-49d4-a6b7-7c1f2b5b322f', '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.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': 'active'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-eb4d5210-ffd4-471d-a900-9661c9ae931d +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 \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"} +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-0ddc0403-c4c4-4d62-8eb0-faa12f6e10fe +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/provision {'target': 'active'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-92165850-9d9e-49d6-aa7f-4a8d1ab08b12 +Openstack-Request-Id: req-bd74b27f-3b61-43bf-be90-39be8471dddf X-Openstack-Ironic-Api-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 {} -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_ramdisk.TestLookup.test_old_api_version -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_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 -GOT:{'ports': [{'uuid': '8fd51a14-9542-44ae-b6a3-fc6d92a5ce84', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/8fd51a14-9542-44ae-b6a3-fc6d92a5ce84', 'rel': 'self'}, {'href': 'http://localhost/ports/8fd51a14-9542-44ae-b6a3-fc6d92a5ce84', 'rel': 'bookmark'}]}, {'uuid': '37c75235-d537-48c6-86f0-cdec056d804e', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/37c75235-d537-48c6-86f0-cdec056d804e', 'rel': 'self'}, {'href': 'http://localhost/ports/37c75235-d537-48c6-86f0-cdec056d804e', 'rel': 'bookmark'}]}]} -GET: /v1/ports?sort_key=foo {} +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/provision {'target': 'deploy'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-ed8a4107-c021-4eef-bee6-cd5016568cc6 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.73 + +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-c01115f6-77a1-4c89-91d2-535b03cf9146 +Openstack-Request-Id: req-a995daa3-b2ca-415a-8ec3-7846c1676838 X-Openstack-Ironic-Api-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 {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"not-supported\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-48400da2-b5bd-40b6-8e6f-0ecdcb5c4917 +Openstack-Request-Id: req-29577370-f8b8-431b-8bec-6052272d51d9 X-Openstack-Ironic-Api-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 {} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"} +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-916aa275-aec0-42cc-9646-0363c52fa67f +Openstack-Request-Id: req-1b030863-238a-4b48-9d6e-1d98230802d3 X-Openstack-Ironic-Api-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 {} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The provisioning operation can't be performed on node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 because it's in maintenance mode.\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': ' '} +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.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.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_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.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.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.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.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.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_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.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.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps ... 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.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.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 GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-bbb6e680-6fc4-4506-8b98-133ef2d0a39d +Openstack-Request-Id: req-a4119cc1-34cf-4e53-b0ce-d48724db02ee X-Openstack-Ironic-Api-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 +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/7aa5b32e-672a-4a1d-bacf-228cba2424a2 [{'path': '/retired', 'value': True, 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f00976d4-678b-4cf7-9abe-95d5134dcfab +Openstack-Request-Id: req-699d9a5c-83ea-475e-a7f5-ff043520d399 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}"} -DELETE: /v1/portgroups/52:54:00:cf:2d:31 -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.61 +{"uuid": "7aa5b32e-672a-4a1d-bacf-228cba2424a2", "created_at": "2025-02-07T17:33:14.918806+00:00", "updated_at": null, "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/7aa5b32e-672a-4a1d-bacf-228cba2424a2", "rel": "self"}, {"href": "http://localhost/nodes/7aa5b32e-672a-4a1d-bacf-228cba2424a2", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7aa5b32e-672a-4a1d-bacf-228cba2424a2/ports", "rel": "self"}, {"href": "http://localhost/nodes/7aa5b32e-672a-4a1d-bacf-228cba2424a2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7aa5b32e-672a-4a1d-bacf-228cba2424a2/states", "rel": "self"}, {"href": "http://localhost/nodes/7aa5b32e-672a-4a1d-bacf-228cba2424a2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7aa5b32e-672a-4a1d-bacf-228cba2424a2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7aa5b32e-672a-4a1d-bacf-228cba2424a2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7aa5b32e-672a-4a1d-bacf-228cba2424a2/volume", "rel": "self"}, {"href": "http://localhost/nodes/7aa5b32e-672a-4a1d-bacf-228cba2424a2/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/52afeb90-0edd-4914-a722-fd2bd7eb9067 [{'path': '/retired', 'value': True, 'op': 'replace'}] +GOT:Response: 406 Not Acceptable 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-922063aa-7867-43e5-bee0-e30876f1004a +Openstack-Request-Id: req-5cba815d-1aa8-4be4-b237-7aa2d394128e 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-bb42d2ab-e184-4d28-8d8b-8acc4d25f943 +X-Openstack-Ironic-Api-Version: 1.60 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/37348a18-da19-49d2-a5bd-21efa656da9e [{'path': '/retired_reason', 'value': 'a better reason', 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-39e7e386-a673-41ac-95a3-a156468b5627 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 +X-Openstack-Ironic-Api-Version: 1.61 +{"uuid": "37348a18-da19-49d2-a5bd-21efa656da9e", "created_at": "2025-02-07T17:33:15.328510+00:00", "updated_at": null, "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/37348a18-da19-49d2-a5bd-21efa656da9e", "rel": "self"}, {"href": "http://localhost/nodes/37348a18-da19-49d2-a5bd-21efa656da9e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/37348a18-da19-49d2-a5bd-21efa656da9e/ports", "rel": "self"}, {"href": "http://localhost/nodes/37348a18-da19-49d2-a5bd-21efa656da9e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/37348a18-da19-49d2-a5bd-21efa656da9e/states", "rel": "self"}, {"href": "http://localhost/nodes/37348a18-da19-49d2-a5bd-21efa656da9e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/37348a18-da19-49d2-a5bd-21efa656da9e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/37348a18-da19-49d2-a5bd-21efa656da9e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/37348a18-da19-49d2-a5bd-21efa656da9e/volume", "rel": "self"}, {"href": "http://localhost/nodes/37348a18-da19-49d2-a5bd-21efa656da9e/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/2ff2cebb-868d-457f-a3cb-48df4df6088b [{'op': 'remove', 'path': '/retired'}] +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-a0f9c888-bb90-4a4b-9580-438703912aed +Openstack-Request-Id: req-ce4ce82a-8bfc-40bb-bf5b-cdd519f3ef6e X-Openstack-Ironic-Api-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 +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 204 No Content -Openstack-Request-Id: req-65da5a99-5cbc-4b8e-9f24-9a953d6aab8e +Openstack-Request-Id: req-a2029f0c-3d1c-4bdb-8c4a-9274f76113c9 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 +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GOT:Response: 409 Conflict +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-47da721a-4834-49c0-b4f9-ff06a4f13a45 +Openstack-Request-Id: req-a171e4a5-395d-4221-87d5-caa04587a7d1 X-Openstack-Ironic-Api-Maximum-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}"} -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/ {} -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_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.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.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.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.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_portgroup.TestListPortgroups.test_detail_against_single -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_against_single ... 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_network.GetPhysnetsByPortgroupID.test_exclude_port -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port ... 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.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.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_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.TestPortgroupIdent.test_get_rpc_portgroup_name -ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:50.229181+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-06T10:56:50.477202+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.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_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.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.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.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_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 -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.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 -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-260fc5ff-1a65-427b-86f2-fc81ef7083aa +Openstack-Request-Id: req-c378c79c-3629-429f-b506-7f87cf08cc42 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": "4bbf6637-c8ec-4ae4-bcc9-e05313da8355", "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 {} +{"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/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-23462805-bfcb-4c87-9a2d-16476cd6e3d2 +Openstack-Request-Id: req-1f713291-63be-499d-9485-03f4d177bfe4 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": "b3631251-584a-4a57-b94d-ba2eb6929fb3", "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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:14.674905+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-23462805-bfcb-4c87-9a2d-16476cd6e3d2 +Openstack-Request-Id: req-79fabd32-573c-4c90-ac39-cefaf29f5b9d 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": "b3631251-584a-4a57-b94d-ba2eb6929fb3", "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 {} +{"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-1d6e335f-3b45-45fc-87a7-3fc6d085f545 -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-06T10:56:50.457567+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-06T10:56:50.462742+00:00", "updated_at": "2024-01-06T10:56:50.469167+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": "7ae500ec-ae92-4914-b36a-b3f7d427dbd0", "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": "7ae500ec-ae92-4914-b36a-b3f7d427dbd0", "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-06T10:56:50.490464+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-1d6e335f-3b45-45fc-87a7-3fc6d085f545 +Openstack-Request-Id: req-dbd3c147-a539-4190-847e-e64d0e0bfb22 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-06T10:56:50.457567+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-06T10:56:50.462742+00:00", "updated_at": "2024-01-06T10:56:50.469167+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": "7ae500ec-ae92-4914-b36a-b3f7d427dbd0", "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": "7ae500ec-ae92-4914-b36a-b3f7d427dbd0", "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-06T10:56:50.490464+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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_011_nodes_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_011_nodes_detail_get_admin ... 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.common.test_utils.BareMetalUtilsTestCase.test_create_link -ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link ... 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_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.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_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id ... 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.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.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_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.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_portgroup.TestListPortgroups.test_detail_query -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:50.543908+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-06T10:56:50.607771+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-06T10:56:50.685601+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.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_network.GetPhysnetsByPortgroupID.test_one_port -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port ... 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.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.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint -ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint ... 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 - -API ACL Testing Path get /v1/nodes/detail -GET: /v1/nodes/detail {} -GOT:Response: 403 Forbidden +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:14.905712+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-42d86039-0e24-4cdc-8287-cd1d9e218b51 +Openstack-Request-Id: req-a78a2f1c-9535-4e5e-8b1f-9d97c3e42a69 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-42d86039-0e24-4cdc-8287-cd1d9e218b51 +Openstack-Request-Id: req-774d1866-0d09-48c0-bfa6-de1b38c69867 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:15.188812+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-62967f88-49d7-486d-b47d-e40b3cff6745 +Openstack-Request-Id: req-521eb9fd-3ea0-4fb3-9417-5b3ee2cee024 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-06T10:56:50.717408+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-06T10:56:50.721346+00:00", "updated_at": "2024-01-06T10:56:50.727007+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": "4481ca0c-a38d-4f31-9bfe-7f889c825b38", "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": "4481ca0c-a38d-4f31-9bfe-7f889c825b38", "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-06T10:56:50.747742+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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\": \"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-62967f88-49d7-486d-b47d-e40b3cff6745 +Openstack-Request-Id: req-ee9d005d-f1d8-4b0a-8159-6b41950f21b7 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-06T10:56:50.717408+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-06T10:56:50.721346+00:00", "updated_at": "2024-01-06T10:56:50.727007+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": "4481ca0c-a38d-4f31-9bfe-7f889c825b38", "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": "4481ca0c-a38d-4f31-9bfe-7f889c825b38", "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-06T10:56:50.747742+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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.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.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.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_volume_connector.TestListVolumeConnectors.test_collection_links_custom_fields -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_custom_fields ... ok +{"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'}] +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.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_volume_target.TestPatch.test_remove_multi +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_multi ... 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.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.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance ... 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-391a8bca-13d8-4b58-a76e-1687b8a55b89 +Openstack-Request-Id: req-acb3e755-c5e8-4b9a-9811-cc4c027be341 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.47 -{"uuid": "9b702d74-d38e-4e3a-8f98-6e91a0f204c5", "created_at": "2024-01-06T10:56:50.291887+00:00", "updated_at": null, "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/9b702d74-d38e-4e3a-8f98-6e91a0f204c5", "rel": "self"}, {"href": "http://localhost/nodes/9b702d74-d38e-4e3a-8f98-6e91a0f204c5", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9b702d74-d38e-4e3a-8f98-6e91a0f204c5/ports", "rel": "self"}, {"href": "http://localhost/nodes/9b702d74-d38e-4e3a-8f98-6e91a0f204c5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9b702d74-d38e-4e3a-8f98-6e91a0f204c5/states", "rel": "self"}, {"href": "http://localhost/nodes/9b702d74-d38e-4e3a-8f98-6e91a0f204c5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9b702d74-d38e-4e3a-8f98-6e91a0f204c5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9b702d74-d38e-4e3a-8f98-6e91a0f204c5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9b702d74-d38e-4e3a-8f98-6e91a0f204c5/volume", "rel": "self"}, {"href": "http://localhost/nodes/9b702d74-d38e-4e3a-8f98-6e91a0f204c5/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/d8d2103e-ba7c-479b-9335-f3108bc2866d [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:15.373655+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-19cd347b-539d-4e45-b492-d4858dd12320 +Openstack-Request-Id: req-acb3e755-c5e8-4b9a-9811-cc4c027be341 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/48870d91-46c5-4b60-bccb-64f67665016e [{'path': '/automated_clean', 'value': False, 'op': 'replace'}] -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:15.373655+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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_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.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 +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-655aea78-f9aa-4356-b585-5adbb28b33ca +Openstack-Request-Id: req-d4edcd04-a7f3-434b-a6c7-d64c8ca5eadb 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 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:12.471301+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-88bbc4a9-74e3-4b10-b67b-90c7e6cd80eb +Openstack-Request-Id: req-11fc4899-b9e9-42b4-97c5-72e3b8408d17 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/93819856-37fb-4104-8353-4c70528f5a4f [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] +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 Content-Type: application/json -Openstack-Request-Id: req-af5e9c8d-7bc8-4102-856d-52ee0263f192 +Openstack-Request-Id: req-a6358e3a-2999-400d-9e13-edf288185679 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "93819856-37fb-4104-8353-4c70528f5a4f", "created_at": "2024-01-06T10:56:50.615377+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/93819856-37fb-4104-8353-4c70528f5a4f", "rel": "self"}, {"href": "http://localhost/nodes/93819856-37fb-4104-8353-4c70528f5a4f", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/93819856-37fb-4104-8353-4c70528f5a4f/ports", "rel": "self"}, {"href": "http://localhost/nodes/93819856-37fb-4104-8353-4c70528f5a4f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/93819856-37fb-4104-8353-4c70528f5a4f/states", "rel": "self"}, {"href": "http://localhost/nodes/93819856-37fb-4104-8353-4c70528f5a4f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/93819856-37fb-4104-8353-4c70528f5a4f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/93819856-37fb-4104-8353-4c70528f5a4f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/93819856-37fb-4104-8353-4c70528f5a4f/volume", "rel": "self"}, {"href": "http://localhost/nodes/93819856-37fb-4104-8353-4c70528f5a4f/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/c0d43772-1c52-49c9-afe0-2895e8562737 [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:12.745945+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-a61affa6-0925-4c89-9e4c-8568e5a25efb +Openstack-Request-Id: req-4a840b55-1b91-4f2c-89ba-0ea98daed4f1 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.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PATCH: /v1/nodes/c7992215-9354-4049-bc2f-4a1506364ac4 [{'path': '/description', 'value': 'meow', 'op': 'replace'}] -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_portgroup.TestListPortgroups.test_detail_query_false -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query_false ... 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.conductor.test_allocations.BackfillAllocationTestCase.test_resource_class_mismatch -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_resource_class_mismatch ... 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.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.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.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.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.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.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.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.conductor.test_allocations.BackfillAllocationTestCase.test_state_not_active -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_state_not_active ... ok +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-4ae018b1-25d2-439f-a391-57d3a0d96803 +Openstack-Request-Id: req-9c23d870-391b-456d-a575-9cd98f4147d5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.14 +X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -GET: /v1/portgroups/?limit=3 {} -GOT:{'portgroups': [{'uuid': '29af1f74-e324-4dc1-a8c9-636a32132585', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/29af1f74-e324-4dc1-a8c9-636a32132585', 'rel': 'self'}, {'href': 'http://localhost/portgroups/29af1f74-e324-4dc1-a8c9-636a32132585', 'rel': 'bookmark'}]}, {'uuid': '56ca3792-c765-4f2f-a485-ed358889fc2a', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/56ca3792-c765-4f2f-a485-ed358889fc2a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/56ca3792-c765-4f2f-a485-ed358889fc2a', 'rel': 'bookmark'}]}, {'uuid': '44790787-adda-47f7-9605-7936d7000304', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/44790787-adda-47f7-9605-7936d7000304', 'rel': 'self'}, {'href': 'http://localhost/portgroups/44790787-adda-47f7-9605-7936d7000304', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=44790787-adda-47f7-9605-7936d7000304'} -GET: /v1/portgroups?fields=address,uuid {} -GOT:{'portgroups': [{'uuid': 'e0b04456-6d50-4021-b2c7-7f8b63ae621c', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/portgroups/e0b04456-6d50-4021-b2c7-7f8b63ae621c', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e0b04456-6d50-4021-b2c7-7f8b63ae621c', 'rel': 'bookmark'}]}, {'uuid': '2d85bba2-df78-4065-b8fe-4137509dc1d6', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/portgroups/2d85bba2-df78-4065-b8fe-4137509dc1d6', 'rel': 'self'}, {'href': 'http://localhost/portgroups/2d85bba2-df78-4065-b8fe-4137509dc1d6', 'rel': 'bookmark'}]}, {'uuid': 'b4ac1fb9-9be4-4f93-8533-83e8e8e95b70', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/portgroups/b4ac1fb9-9be4-4f93-8533-83e8e8e95b70', 'rel': 'self'}, {'href': 'http://localhost/portgroups/b4ac1fb9-9be4-4f93-8533-83e8e8e95b70', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=b4ac1fb9-9be4-4f93-8533-83e8e8e95b70'} -GET: /v1/portgroups {} -GOT:{'portgroups': [{'uuid': '026c4e2d-177c-4bfc-9ad4-508e08d33efe', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/026c4e2d-177c-4bfc-9ad4-508e08d33efe', 'rel': 'self'}, {'href': 'http://localhost/portgroups/026c4e2d-177c-4bfc-9ad4-508e08d33efe', 'rel': 'bookmark'}]}, {'uuid': '0d3141af-95c0-4269-b359-de71d78fc2f6', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/0d3141af-95c0-4269-b359-de71d78fc2f6', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0d3141af-95c0-4269-b359-de71d78fc2f6', 'rel': 'bookmark'}]}, {'uuid': 'e0cfb2ad-ede5-4b49-b4df-273e562a0da5', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/e0cfb2ad-ede5-4b49-b4df-273e562a0da5', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e0cfb2ad-ede5-4b49-b4df-273e562a0da5', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=e0cfb2ad-ede5-4b49-b4df-273e562a0da5'} -GET: /v1/portgroups/detail {} -GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2024-01-06T10:56:50.583993+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 +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-92a54fd2-faec-4db1-83a1-064801436222 +Openstack-Request-Id: req-40f74eb9-6eea-4d12-8ccd-f1516c9bcb2b X-Openstack-Ironic-Api-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-06T10:56:50.700803+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 {} +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:13.031136+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 {"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-06T10:56:50.789963+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 {} -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_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent ... 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.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.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.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.common.test_policy.PolicyInCodeTestCase.test_creds_01 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_01 ... 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_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.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.TestPatch.test_update_fails_bad_driver -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver ... 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.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.common.test_policy.PolicyInCodeTestCase.test_creds_02 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_02 ... 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.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_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.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.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.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.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_policy.PolicyInCodeTestCase.test_creds_03 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_03 ... 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.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_node.TestListNodes.test_get_retired_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_retired_fields ... 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.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_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.common.test_policy.PolicyInCodeTestCase.test_creds_04 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_04 ... 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.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_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.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.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_policy.PolicyInCodeTestCase.test_creds_05 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_05 ... ok -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-172b7855-438c-4ab6-8eff-0822bf9d0f78 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.51 -{"uuid": "c7992215-9354-4049-bc2f-4a1506364ac4", "created_at": "2024-01-06T10:56:50.788006+00:00", "updated_at": null, "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/c7992215-9354-4049-bc2f-4a1506364ac4", "rel": "self"}, {"href": "http://localhost/nodes/c7992215-9354-4049-bc2f-4a1506364ac4", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c7992215-9354-4049-bc2f-4a1506364ac4/ports", "rel": "self"}, {"href": "http://localhost/nodes/c7992215-9354-4049-bc2f-4a1506364ac4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c7992215-9354-4049-bc2f-4a1506364ac4/states", "rel": "self"}, {"href": "http://localhost/nodes/c7992215-9354-4049-bc2f-4a1506364ac4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c7992215-9354-4049-bc2f-4a1506364ac4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c7992215-9354-4049-bc2f-4a1506364ac4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c7992215-9354-4049-bc2f-4a1506364ac4/volume", "rel": "self"}, {"href": "http://localhost/nodes/c7992215-9354-4049-bc2f-4a1506364ac4/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/7c965927-8779-4035-883a-0739dc58a2a8 [{'path': '/description', 'value': '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'op': 'replace'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-7555eb99-2fb3-440b-80c4-0a24266952ab -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'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-cc85c24a-e93c-4de7-ad36-081cc6efb671 -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'}] -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.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.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.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_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.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_policy.PolicyInCodeTestCase.test_creds_06 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_06 ... 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_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_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.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.common.test_images.IronicImagesTestCase.test_download_size -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size ... 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.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 - -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 200 OK +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-fd2d599a-6285-4125-bbc7-e921ed2a662e +Openstack-Request-Id: req-0914109e-8334-4dd4-9ede-aefe8b379cce 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-06T10:56:50.853691+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fd2d599a-6285-4125-bbc7-e921ed2a662e +Openstack-Request-Id: req-0914109e-8334-4dd4-9ede-aefe8b379cce 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-06T10:56:50.853691+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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 +{"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-6318e46f-1239-4bf3-b22e-afb695b1c76f +Openstack-Request-Id: req-e3ae7ba8-4ea3-4f19-bf03-e8dd1b8816ba X-Openstack-Ironic-Api-Maximum-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-6318e46f-1239-4bf3-b22e-afb695b1c76f +Openstack-Request-Id: req-e3ae7ba8-4ea3-4f19-bf03-e8dd1b8816ba X-Openstack-Ironic-Api-Maximum-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.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.common.test_policy.PolicyInCodeTestCase.test_creds_07 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_07 ... ok -GOT:Response: 400 Bad Request +{"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-16e112da-72d3-466f-9c14-121bc7ec528c +Openstack-Request-Id: req-b7c3b4e4-76de-4e4b-894d-7157e1088384 X-Openstack-Ironic-Api-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-ce366073-46e1-46f7-9409-c893f43e3398 -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=2524afc8-ba29-48aa-8245-594dac92189f {} -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-a2bc7f4c-cbb4-4389-b00a-1e831e75c804 +Openstack-Request-Id: req-b7c3b4e4-76de-4e4b-894d-7157e1088384 X-Openstack-Ironic-Api-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/volume/connectors/?limit=3 {} -GOT:{'connectors': [{'uuid': '8a6dc4c3-32c2-460e-8ff4-851fe84b4c58', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/8a6dc4c3-32c2-460e-8ff4-851fe84b4c58', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/8a6dc4c3-32c2-460e-8ff4-851fe84b4c58', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'ad475234-2ec1-4e46-afcd-a9d4906e4937', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/ad475234-2ec1-4e46-afcd-a9d4906e4937', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/ad475234-2ec1-4e46-afcd-a9d4906e4937', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '5b8acb7e-a842-4b55-a223-1ad7e1c68d7d', 'connector_id': 'test-connector_id-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/5b8acb7e-a842-4b55-a223-1ad7e1c68d7d', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/5b8acb7e-a842-4b55-a223-1ad7e1c68d7d', '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=5b8acb7e-a842-4b55-a223-1ad7e1c68d7d'} -GET: /v1/volume/connectors?fields=uuid,extra {} -GOT:{'connectors': [{'uuid': '59162847-a2e1-401f-a24b-08ab225a2514', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/59162847-a2e1-401f-a24b-08ab225a2514', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/59162847-a2e1-401f-a24b-08ab225a2514', 'rel': 'bookmark'}]}, {'uuid': 'dadcfe72-ec03-486c-8f51-ab9a28cd0857', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/dadcfe72-ec03-486c-8f51-ab9a28cd0857', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/dadcfe72-ec03-486c-8f51-ab9a28cd0857', 'rel': 'bookmark'}]}, {'uuid': 'e2392dec-e5d4-4daa-a354-42809c204fd7', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/e2392dec-e5d4-4daa-a354-42809c204fd7', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/e2392dec-e5d4-4daa-a354-42809c204fd7', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=e2392dec-e5d4-4daa-a354-42809c204fd7'} -GET: /v1/volume/connectors {} -GOT:{'connectors': [{'uuid': 'bbd420ec-d6e5-496d-9467-6f74c5655c7a', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/bbd420ec-d6e5-496d-9467-6f74c5655c7a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/bbd420ec-d6e5-496d-9467-6f74c5655c7a', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'c48538a3-176d-4403-beae-9bbea140876d', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/c48538a3-176d-4403-beae-9bbea140876d', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/c48538a3-176d-4403-beae-9bbea140876d', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '041b00d1-503e-4e9a-8d00-a77a410bf248', 'connector_id': 'test-connector_id-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/041b00d1-503e-4e9a-8d00-a77a410bf248', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/041b00d1-503e-4e9a-8d00-a77a410bf248', '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=041b00d1-503e-4e9a-8d00-a77a410bf248'} -GET: /v1/volume/connectors?detail=True&limit=3 {} -GOT:{'connectors': [{'uuid': '38ac1261-fb84-4644-95f4-b60797efd418', 'created_at': '2024-01-06T10:56:50.972164+00:00', 'updated_at': None, 'connector_id': 'test-connector_id-0', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/38ac1261-fb84-4644-95f4-b60797efd418', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/38ac1261-fb84-4644-95f4-b60797efd418', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '549d3c8a-37c4-4659-966a-384a1f2ae83e', 'created_at': '2024-01-06T10:56:50.973956+00:00', 'updated_at': None, 'connector_id': 'test-connector_id-1', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/549d3c8a-37c4-4659-966a-384a1f2ae83e', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/549d3c8a-37c4-4659-966a-384a1f2ae83e', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'cdfbe2b8-5867-4754-9f0c-53bd7ee1f765', 'created_at': '2024-01-06T10:56:50.975535+00:00', 'updated_at': None, 'connector_id': 'test-connector_id-2', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/cdfbe2b8-5867-4754-9f0c-53bd7ee1f765', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/cdfbe2b8-5867-4754-9f0c-53bd7ee1f765', '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=cdfbe2b8-5867-4754-9f0c-53bd7ee1f765'} -GET: /v1/volume/connectors?detail=True {} -GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T10:56:51.033256+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 +{"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.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_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.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 +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.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.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_volume_target.TestPost.test_create_volume_target_error +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error ... 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-b0013e92-839a-481e-847f-0c8ce8122e80 +Openstack-Request-Id: req-6b1515ed-822c-4ead-9f36-b4145037bedd X-Openstack-Ironic-Api-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 +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': 'd224db23-fa6f-4797-b1de-3c61682b86ac', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/d224db23-fa6f-4797-b1de-3c61682b86ac', 'rel': 'self'}, {'href': 'http://localhost/nodes/d224db23-fa6f-4797-b1de-3c61682b86ac', 'rel': 'bookmark'}]}, {'uuid': '36e7dfb0-a72e-497b-9c56-74376fe26835', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/36e7dfb0-a72e-497b-9c56-74376fe26835', 'rel': 'self'}, {'href': 'http://localhost/nodes/36e7dfb0-a72e-497b-9c56-74376fe26835', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?conductor=fake.conductor {} +GOT:{'nodes': [{'uuid': '36e7dfb0-a72e-497b-9c56-74376fe26835', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/36e7dfb0-a72e-497b-9c56-74376fe26835', 'rel': 'self'}, {'href': 'http://localhost/nodes/36e7dfb0-a72e-497b-9c56-74376fe26835', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?conductor_group=group1 {} +GOT:{'nodes': [{'uuid': '54131da8-2752-4b14-aec7-d0cd97e1b19f', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/54131da8-2752-4b14-aec7-d0cd97e1b19f', 'rel': 'self'}, {'href': 'http://localhost/nodes/54131da8-2752-4b14-aec7-d0cd97e1b19f', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?conductor_group=group2 {} +GOT:{'nodes': [{'uuid': '0252a85c-78b1-4ff6-9c6d-3553d5980323', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/0252a85c-78b1-4ff6-9c6d-3553d5980323', 'rel': 'self'}, {'href': 'http://localhost/nodes/0252a85c-78b1-4ff6-9c6d-3553d5980323', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?conductor_group=group1 {} +GOT:{'nodes': [{'uuid': '54131da8-2752-4b14-aec7-d0cd97e1b19f', 'created_at': '2025-02-07T17:33:15.771611+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/54131da8-2752-4b14-aec7-d0cd97e1b19f', 'rel': 'self'}, {'href': 'http://localhost/nodes/54131da8-2752-4b14-aec7-d0cd97e1b19f', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/54131da8-2752-4b14-aec7-d0cd97e1b19f/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/54131da8-2752-4b14-aec7-d0cd97e1b19f/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/54131da8-2752-4b14-aec7-d0cd97e1b19f/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/54131da8-2752-4b14-aec7-d0cd97e1b19f/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/54131da8-2752-4b14-aec7-d0cd97e1b19f/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/54131da8-2752-4b14-aec7-d0cd97e1b19f/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/54131da8-2752-4b14-aec7-d0cd97e1b19f/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/54131da8-2752-4b14-aec7-d0cd97e1b19f/volume', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?conductor_group=group2 {} +GOT:{'nodes': [{'uuid': '0252a85c-78b1-4ff6-9c6d-3553d5980323', 'created_at': '2025-02-07T17:33:15.777524+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/0252a85c-78b1-4ff6-9c6d-3553d5980323', 'rel': 'self'}, {'href': 'http://localhost/nodes/0252a85c-78b1-4ff6-9c6d-3553d5980323', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/0252a85c-78b1-4ff6-9c6d-3553d5980323/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/0252a85c-78b1-4ff6-9c6d-3553d5980323/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/0252a85c-78b1-4ff6-9c6d-3553d5980323/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/0252a85c-78b1-4ff6-9c6d-3553d5980323/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/0252a85c-78b1-4ff6-9c6d-3553d5980323/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/0252a85c-78b1-4ff6-9c6d-3553d5980323/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/0252a85c-78b1-4ff6-9c6d-3553d5980323/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/0252a85c-78b1-4ff6-9c6d-3553d5980323/volume', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?conductor_group=group1 {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-4059693e-3b3e-48cd-8550-7ae47292b576 +Openstack-Request-Id: req-c1fb3eea-b911-4832-be27-d94dbb2ea345 X-Openstack-Ironic-Api-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 {} -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.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_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.conductor.test_allocations.BackfillAllocationTestCase.test_with_candidate_nodes -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_candidate_nodes ... 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.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.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_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.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.common.test_policy.PolicyInCodeTestCase.test_creds_09 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_09 ... 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.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.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.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.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_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_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.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.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_policy.PolicyInCodeTestCase.test_creds_10 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_10 ... 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.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_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.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_policy.PolicyInCodeTestCase.test_creds_11 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_11 ... 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.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.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_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_allocations.BackfillAllocationTestCase.test_without_resource_class -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_without_resource_class ... ok -GOT:Response: 400 Bad Request +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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:15.200194+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-409adf6b-10f3-4424-b4ca-703c2a543b3e +Openstack-Request-Id: req-43e2b481-fea7-491b-8e88-ea949fde20fe 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/5e8ddb5c-fa84-4789-a94b-9fe7c0e40b49 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +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 -Openstack-Request-Id: req-f2997a92-03ae-4c6f-8bd2-090242a5e1f1 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-4fcacfe4-1ad0-454d-b051-070894d44c70 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "5e8ddb5c-fa84-4789-a94b-9fe7c0e40b49", "created_at": "2024-01-06T10:56:51.139415+00:00", "updated_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/5e8ddb5c-fa84-4789-a94b-9fe7c0e40b49", "rel": "self"}, {"href": "http://localhost/nodes/5e8ddb5c-fa84-4789-a94b-9fe7c0e40b49", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5e8ddb5c-fa84-4789-a94b-9fe7c0e40b49/ports", "rel": "self"}, {"href": "http://localhost/nodes/5e8ddb5c-fa84-4789-a94b-9fe7c0e40b49/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/00857ea2-65f7-4274-93c6-218b6913b058 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +{"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': 'cdc9a575-e43f-4682-8037-a950ad60a341', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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.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.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_manager.DestroyNodeTestCase.test_destroy_node_associated +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_associated ... 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_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.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.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_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_neutron.TestNeutronNetworkActions.test_add_ports_to_network_with_sg +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_with_sg ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1e330737-641e-42c5-9ba7-859b43c2bd9e +Openstack-Request-Id: req-e8a208c6-8573-4145-8558-6286658fa230 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "00857ea2-65f7-4274-93c6-218b6913b058", "created_at": "2024-01-06T10:56:51.205018+00:00", "updated_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/00857ea2-65f7-4274-93c6-218b6913b058", "rel": "self"}, {"href": "http://localhost/nodes/00857ea2-65f7-4274-93c6-218b6913b058", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/00857ea2-65f7-4274-93c6-218b6913b058/ports", "rel": "self"}, {"href": "http://localhost/nodes/00857ea2-65f7-4274-93c6-218b6913b058/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/318dc6f0-f863-4c41-a707-ca0f185b3ff9 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:15.756766+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-76c8b70a-b254-4876-bde1-b9ba4fbdf689 +Openstack-Request-Id: req-e8a208c6-8573-4145-8558-6286658fa230 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "318dc6f0-f863-4c41-a707-ca0f185b3ff9", "created_at": "2024-01-06T10:56:51.230334+00:00", "updated_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/318dc6f0-f863-4c41-a707-ca0f185b3ff9", "rel": "self"}, {"href": "http://localhost/nodes/318dc6f0-f863-4c41-a707-ca0f185b3ff9", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/318dc6f0-f863-4c41-a707-ca0f185b3ff9/ports", "rel": "self"}, {"href": "http://localhost/nodes/318dc6f0-f863-4c41-a707-ca0f185b3ff9/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/9301ede5-8a25-459a-bb83-8e77ff1a1d46 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:15.756766+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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.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.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_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_volume_target.TestPatch.test_remove_uuid +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid ... 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 +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_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.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.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_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 -Openstack-Request-Id: req-e865b00f-a863-4f77-87ab-28e442d8eef6 +Openstack-Request-Id: req-e77ec5f9-027b-491c-ab32-b803b05b9aca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "9301ede5-8a25-459a-bb83-8e77ff1a1d46", "created_at": "2024-01-06T10:56:51.256483+00:00", "updated_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/9301ede5-8a25-459a-bb83-8e77ff1a1d46", "rel": "self"}, {"href": "http://localhost/nodes/9301ede5-8a25-459a-bb83-8e77ff1a1d46", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9301ede5-8a25-459a-bb83-8e77ff1a1d46/ports", "rel": "self"}, {"href": "http://localhost/nodes/9301ede5-8a25-459a-bb83-8e77ff1a1d46/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/777c7b04-42c7-43e1-91be-de9f2cff2b6e [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:13.978717+00:00", "updated_at": "2025-02-07T17:33:13.999574+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-40ce0be6-608c-46fe-be01-413563f2b298 +Openstack-Request-Id: req-89c1e7a8-0be0-47c3-9947-fc4b5b0106c0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "777c7b04-42c7-43e1-91be-de9f2cff2b6e", "created_at": "2024-01-06T10:56:51.287183+00:00", "updated_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/777c7b04-42c7-43e1-91be-de9f2cff2b6e", "rel": "self"}, {"href": "http://localhost/nodes/777c7b04-42c7-43e1-91be-de9f2cff2b6e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/777c7b04-42c7-43e1-91be-de9f2cff2b6e/ports", "rel": "self"}, {"href": "http://localhost/nodes/777c7b04-42c7-43e1-91be-de9f2cff2b6e/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/4ed9a72d-9e4d-45e9-8a53-a02b64af9b43 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -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.common.test_policy.PolicyInCodeTestCase.test_creds_12 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_12 ... 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.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_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.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_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_volume_connector.TestListVolumeConnectors.test_empty -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_empty ... 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.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_policy.PolicyInCodeTestCase.test_creds_13 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_13 ... 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.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.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.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_portgroup.TestListPortgroups.test_get_collection_custom_fields -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:50.753318+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-06T10:56:50.818573+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 {} +X-Openstack-Ironic-Api-Version: 1.19 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:14.104198+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 Content-Type: application/json -Openstack-Request-Id: req-0240f6a9-5e14-4366-9b15-a9607a292048 +Openstack-Request-Id: req-ea623030-9e99-4fa1-ac08-a6b6b8eb2a8c 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.14 {"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-2f07b2e7-0223-42c8-bf0b-31e8b1bb2005 -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.common.test_policy.PolicyInCodeTestCase.test_creds_14 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_14 ... 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.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.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.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.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_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.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.common.test_policy.PolicyInCodeTestCase.test_creds_15 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_15 ... 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.StoreConfigDriveTestCase.test_store_configdrive_swift -ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift ... 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_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.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.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_policy.PolicyInCodeTestCase.test_creds_16 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_16 ... 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 -GOT:Response: 200 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: 201 Created Content-Type: application/json -Openstack-Request-Id: req-03d368a8-5d8f-44b4-9abf-d31b1c74cee0 +Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-2b2aa547-617b-455c-b4c5-7e3d38dd6270 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-06T10:56:51.089616+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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": "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-03d368a8-5d8f-44b4-9abf-d31b1c74cee0 +Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-c21a79f3-d609-488a-a67a-e72b4e775ea2 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-06T10:56:51.089616+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:15.755432+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-07T17:33:15.755432+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-aba9483d-596f-4926-9d5f-898225674b21 +Openstack-Request-Id: req-524c5162-2e81-4ae0-8985-929be9cd0eeb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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\": \"\", \"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 Content-Type: application/json -Openstack-Request-Id: req-aba9483d-596f-4926-9d5f-898225674b21 +Location: http://localhost/v1/volume/targets/64bfffef-d616-4881-b3b0-ddccc7e0c554 +Openstack-Request-Id: req-da762ccc-4f2a-47dd-b109-5c2d54d9001c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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'}}] +{"uuid": "64bfffef-d616-4881-b3b0-ddccc7e0c554", "created_at": "2025-02-07T17:33:16.077776+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/64bfffef-d616-4881-b3b0-ddccc7e0c554", "rel": "self"}, {"href": "http://localhost/volume/targets/64bfffef-d616-4881-b3b0-ddccc7e0c554", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +GET: /v1/volume/targets/64bfffef-d616-4881-b3b0-ddccc7e0c554 {} +GOT:{'uuid': '64bfffef-d616-4881-b3b0-ddccc7e0c554', 'created_at': '2025-02-07T17:33:16.077776+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/64bfffef-d616-4881-b3b0-ddccc7e0c554', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/64bfffef-d616-4881-b3b0-ddccc7e0c554', '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-3e52ff35-40a1-4092-9f70-f5e2c3bb3fe9 +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +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_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 +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-82edff23-fc76-4fdc-9e83-7dae14f6e79f X-Openstack-Ironic-Api-Maximum-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.61 +{"uuid": "2ff2cebb-868d-457f-a3cb-48df4df6088b", "created_at": "2025-02-07T17:33:15.622770+00:00", "updated_at": null, "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/2ff2cebb-868d-457f-a3cb-48df4df6088b", "rel": "self"}, {"href": "http://localhost/nodes/2ff2cebb-868d-457f-a3cb-48df4df6088b", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2ff2cebb-868d-457f-a3cb-48df4df6088b/ports", "rel": "self"}, {"href": "http://localhost/nodes/2ff2cebb-868d-457f-a3cb-48df4df6088b/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2ff2cebb-868d-457f-a3cb-48df4df6088b/states", "rel": "self"}, {"href": "http://localhost/nodes/2ff2cebb-868d-457f-a3cb-48df4df6088b/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2ff2cebb-868d-457f-a3cb-48df4df6088b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2ff2cebb-868d-457f-a3cb-48df4df6088b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2ff2cebb-868d-457f-a3cb-48df4df6088b/volume", "rel": "self"}, {"href": "http://localhost/nodes/2ff2cebb-868d-457f-a3cb-48df4df6088b/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/1810573c-7c1f-4f6f-8dd8-3d1568a7fdd5 [{'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-3e52ff35-40a1-4092-9f70-f5e2c3bb3fe9 +Openstack-Request-Id: req-2123e6f4-3202-4447-b1db-70b12e09c599 X-Openstack-Ironic-Api-Maximum-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.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.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.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.common.test_policy.PolicyInCodeTestCase.test_creds_17 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_17 ... 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_node.TestListNodes.test_get_traits_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields ... 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.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.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.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.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_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.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.common.test_images.IronicImagesTestCase.test_is_source_a_path_simple -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_simple ... ok -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.61 +{"uuid": "1810573c-7c1f-4f6f-8dd8-3d1568a7fdd5", "created_at": "2025-02-07T17:33:15.915714+00:00", "updated_at": null, "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/1810573c-7c1f-4f6f-8dd8-3d1568a7fdd5", "rel": "self"}, {"href": "http://localhost/nodes/1810573c-7c1f-4f6f-8dd8-3d1568a7fdd5", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1810573c-7c1f-4f6f-8dd8-3d1568a7fdd5/ports", "rel": "self"}, {"href": "http://localhost/nodes/1810573c-7c1f-4f6f-8dd8-3d1568a7fdd5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1810573c-7c1f-4f6f-8dd8-3d1568a7fdd5/states", "rel": "self"}, {"href": "http://localhost/nodes/1810573c-7c1f-4f6f-8dd8-3d1568a7fdd5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1810573c-7c1f-4f6f-8dd8-3d1568a7fdd5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1810573c-7c1f-4f6f-8dd8-3d1568a7fdd5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1810573c-7c1f-4f6f-8dd8-3d1568a7fdd5/volume", "rel": "self"}, {"href": "http://localhost/nodes/1810573c-7c1f-4f6f-8dd8-3d1568a7fdd5/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-78b80943-fbe5-4acc-8c8e-8991abf945ff +Openstack-Request-Id: req-8969893c-02da-4aa8-99b8-2dc7205960f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "4ed9a72d-9e4d-45e9-8a53-a02b64af9b43", "created_at": "2024-01-06T10:56:51.315888+00:00", "updated_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/4ed9a72d-9e4d-45e9-8a53-a02b64af9b43", "rel": "self"}, {"href": "http://localhost/nodes/4ed9a72d-9e4d-45e9-8a53-a02b64af9b43", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4ed9a72d-9e4d-45e9-8a53-a02b64af9b43/ports", "rel": "self"}, {"href": "http://localhost/nodes/4ed9a72d-9e4d-45e9-8a53-a02b64af9b43/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/f757c30b-7d35-4dd1-887e-a63a607a4349 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: Additional properties are not allowed ('power_state' was unexpected)\", \"debuginfo\": null}"} +PATCH: /v1/nodes/dbc9c1c5-d7bd-42ba-bec2-afaed0f98a83 [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] +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_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.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.api.controllers.v1.test_node.TestPatch.test_update_storage_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface ... ok +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-7de2124b-320b-43c8-a905-45b55b04b583 +Openstack-Request-Id: req-e203ec69-1180-4dee-91e0-89773c708b06 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "f757c30b-7d35-4dd1-887e-a63a607a4349", "created_at": "2024-01-06T10:56:51.344730+00:00", "updated_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/f757c30b-7d35-4dd1-887e-a63a607a4349", "rel": "self"}, {"href": "http://localhost/nodes/f757c30b-7d35-4dd1-887e-a63a607a4349", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f757c30b-7d35-4dd1-887e-a63a607a4349/ports", "rel": "self"}, {"href": "http://localhost/nodes/f757c30b-7d35-4dd1-887e-a63a607a4349/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/436020d1-27da-432d-a0d1-411edae7b4d2 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.38 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty \\\"rescue_password\\\" is required when setting target provision state to rescue\", \"debuginfo\": null}"} +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-755bb026-e36c-439c-bbb1-1868afee2c6b +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-668abaaf-8294-475f-8234-083af198e8a8 +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-409c7c5a-93d1-4f63-9d48-9031d9410cce +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-00ce3ffc-6d4c-403a-b5bf-f005ee0dc5e4 +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: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-7dc8b4d9-3a86-4223-802b-799502d38255 +Openstack-Request-Id: req-c015ce6e-f183-4ed7-b114-8ee6f9f29e88 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "436020d1-27da-432d-a0d1-411edae7b4d2", "created_at": "2024-01-06T10:56:51.373665+00:00", "updated_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/436020d1-27da-432d-a0d1-411edae7b4d2", "rel": "self"}, {"href": "http://localhost/nodes/436020d1-27da-432d-a0d1-411edae7b4d2", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/436020d1-27da-432d-a0d1-411edae7b4d2/ports", "rel": "self"}, {"href": "http://localhost/nodes/436020d1-27da-432d-a0d1-411edae7b4d2/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/5119b839-6559-4638-b842-8b12f5a7804f [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +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': 'rescue', 'rescue_password': 'password'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-1f2ada9c-d7e2-4e26-995d-cfdeaf933538 +Openstack-Request-Id: req-a2e5cb74-2bce-4538-a548-2163c9804a9e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "5119b839-6559-4638-b842-8b12f5a7804f", "created_at": "2024-01-06T10:56:51.400936+00:00", "updated_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/5119b839-6559-4638-b842-8b12f5a7804f", "rel": "self"}, {"href": "http://localhost/nodes/5119b839-6559-4638-b842-8b12f5a7804f", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5119b839-6559-4638-b842-8b12f5a7804f/ports", "rel": "self"}, {"href": "http://localhost/nodes/5119b839-6559-4638-b842-8b12f5a7804f/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/db770bca-f6f7-4135-b855-aa3e45472c82 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +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': 'rescue', 'rescue_password': 'password'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-0af76736-030d-4bfc-8404-aece240ed097 +Openstack-Request-Id: req-6c101825-066b-4e55-9596-2f0e11924696 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "db770bca-f6f7-4135-b855-aa3e45472c82", "created_at": "2024-01-06T10:56:51.428396+00:00", "updated_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/db770bca-f6f7-4135-b855-aa3e45472c82", "rel": "self"}, {"href": "http://localhost/nodes/db770bca-f6f7-4135-b855-aa3e45472c82", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/db770bca-f6f7-4135-b855-aa3e45472c82/ports", "rel": "self"}, {"href": "http://localhost/nodes/db770bca-f6f7-4135-b855-aa3e45472c82/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/cd5c93cb-dd39-4e2e-be4c-c28285acf09e [{'path': '/instance_uuid', 'op': 'remove'}] -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.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.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.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_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_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 -GOT:{'portgroups': [{'uuid': '87bd08c7-0e35-4837-b61d-525b12a69b87', 'created_at': '2024-01-06T10:56:50.903426+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/87bd08c7-0e35-4837-b61d-525b12a69b87', 'rel': 'self'}, {'href': 'http://localhost/portgroups/87bd08c7-0e35-4837-b61d-525b12a69b87', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/87bd08c7-0e35-4837-b61d-525b12a69b87/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/87bd08c7-0e35-4837-b61d-525b12a69b87/ports', 'rel': 'bookmark'}]}, {'uuid': 'c3534c9c-b69a-4b8d-985e-d2d36d221123', 'created_at': '2024-01-06T10:56:50.901882+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/c3534c9c-b69a-4b8d-985e-d2d36d221123', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c3534c9c-b69a-4b8d-985e-d2d36d221123', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/c3534c9c-b69a-4b8d-985e-d2d36d221123/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c3534c9c-b69a-4b8d-985e-d2d36d221123/ports', 'rel': 'bookmark'}]}, {'uuid': '10ca7b3c-405b-4f35-8987-3034aa6ec760', 'created_at': '2024-01-06T10:56:50.900160+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/10ca7b3c-405b-4f35-8987-3034aa6ec760', 'rel': 'self'}, {'href': 'http://localhost/portgroups/10ca7b3c-405b-4f35-8987-3034aa6ec760', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/10ca7b3c-405b-4f35-8987-3034aa6ec760/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/10ca7b3c-405b-4f35-8987-3034aa6ec760/ports', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups/detail?sort_key=mode {} -GOT:Response: 406 Not Acceptable +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': 'rescue', 'rescue_password': 'password'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-e98873e2-209e-45a5-8ecb-6817b3152c04 +Openstack-Request-Id: req-243a4171-4b70-417e-98f8-ecf4c25c3c3e 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.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': 'rescue'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e75e8e36-e906-4bd6-85b4-349057a9a13f +Openstack-Request-Id: req-8bea0945-d76b-4160-b409-a58311816ad9 X-Openstack-Ironic-Api-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 {} -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 {} +X-Openstack-Ironic-Api-Version: 1.38 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty \\\"rescue_password\\\" is required when setting target provision state to rescue\", \"debuginfo\": null}"} +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-dd82916f-8968-4f3e-940c-eadd977000dc +Openstack-Request-Id: req-19c5de40-f46d-40d9-89e6-351db7e64e47 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\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} -GET: /v1/portgroups {} -GOT:{'portgroups': []} -GET: /v1/portgroups?node=test-node {} -GOT:{'portgroups': [{'uuid': '83aa7094-0276-4988-886d-d827cf14e12d', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/83aa7094-0276-4988-886d-d827cf14e12d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/83aa7094-0276-4988-886d-d827cf14e12d', 'rel': 'bookmark'}]}, {'uuid': 'e45e5b54-56ff-45fe-a1a5-58eb9d39ad30', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/e45e5b54-56ff-45fe-a1a5-58eb9d39ad30', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e45e5b54-56ff-45fe-a1a5-58eb9d39ad30', 'rel': 'bookmark'}]}, {'uuid': 'a9362dcb-a206-47f2-bcbb-12f035b91955', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/a9362dcb-a206-47f2-bcbb-12f035b91955', 'rel': 'self'}, {'href': 'http://localhost/portgroups/a9362dcb-a206-47f2-bcbb-12f035b91955', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups/detail?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2024-01-06T10:56:51.293571+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': '9cc31aaa-5401-4c3a-a7c1-cda86caa4d12', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/9cc31aaa-5401-4c3a-a7c1-cda86caa4d12', 'rel': 'self'}, {'href': 'http://localhost/portgroups/9cc31aaa-5401-4c3a-a7c1-cda86caa4d12', 'rel': 'bookmark'}]}, {'uuid': 'e8751c2b-6713-46dd-8b71-b92544f17a36', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/e8751c2b-6713-46dd-8b71-b92544f17a36', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e8751c2b-6713-46dd-8b71-b92544f17a36', 'rel': 'bookmark'}]}, {'uuid': '81c390ac-1aab-426c-bd57-03c404bdac71', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/81c390ac-1aab-426c-bd57-03c404bdac71', 'rel': 'self'}, {'href': 'http://localhost/portgroups/81c390ac-1aab-426c-bd57-03c404bdac71', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups?fields=address&limit=2 {} -GOT:{'portgroups': [{'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/portgroups/27d65936-08d0-44cc-b161-91a79bbe50cb', 'rel': 'self'}, {'href': 'http://localhost/portgroups/27d65936-08d0-44cc-b161-91a79bbe50cb', 'rel': 'bookmark'}]}, {'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/portgroups/e363aad9-f1d9-4343-9908-8c2476504895', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e363aad9-f1d9-4343-9908-8c2476504895', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=e363aad9-f1d9-4343-9908-8c2476504895'} -GET: /v1/portgroups/?fields=address,properties {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-85db94a3-f020-4995-b98b-c74e524c2d73 +X-Openstack-Ironic-Api-Version: 1.38 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"rescue_password\\\" is only valid when setting target provision state to rescue\", \"debuginfo\": null}"} +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-211ba7ea-3cb3-49e0-a584-be7c72c641ff 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}"} -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.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.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.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_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_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_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.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_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.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.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.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout ... 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.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.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.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.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.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.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.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.common.test_utils.TempFilesTestCase.test_check_dir_ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok ... 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.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.VendorPassthruTestCase.test_vendor_passthru_shared_lock -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_shared_lock ... 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.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.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_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.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 -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-b2daeadf-0f46-460b-9b5c-8a0764a42169 +X-Openstack-Ironic-Api-Version: 1.38 + +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-182efd00-0504-4132-b51e-4894ea148431 +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': 'unrescue'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-faf5e2d5-0ad1-4d0e-b618-5b2bde5b02bd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 -{"uuid": "cd5c93cb-dd39-4e2e-be4c-c28285acf09e", "created_at": "2024-01-06T10:56:51.505446+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/cd5c93cb-dd39-4e2e-be4c-c28285acf09e", "rel": "self"}, {"href": "http://localhost/nodes/cd5c93cb-dd39-4e2e-be4c-c28285acf09e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/cd5c93cb-dd39-4e2e-be4c-c28285acf09e/ports", "rel": "self"}, {"href": "http://localhost/nodes/cd5c93cb-dd39-4e2e-be4c-c28285acf09e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/cd5c93cb-dd39-4e2e-be4c-c28285acf09e/states", "rel": "self"}, {"href": "http://localhost/nodes/cd5c93cb-dd39-4e2e-be4c-c28285acf09e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/cd5c93cb-dd39-4e2e-be4c-c28285acf09e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/cd5c93cb-dd39-4e2e-be4c-c28285acf09e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/cd5c93cb-dd39-4e2e-be4c-c28285acf09e/volume", "rel": "self"}, {"href": "http://localhost/nodes/cd5c93cb-dd39-4e2e-be4c-c28285acf09e/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/7c8080a0-5ca0-42b7-8a68-47750f2c4e20 [{'path': '/instance_uuid', 'op': 'remove'}] + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-ea7ec8ad-39bf-4c65-aa1c-07590f49ab81 +Openstack-Request-Id: req-631c4ecd-3901-4276-b15a-4a363cf0bdf8 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 \\\"7c8080a0-5ca0-42b7-8a68-47750f2c4e20\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} -PATCH: /v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 200 OK +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'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-6f882df6-616d-4143-885f-8a62ff786820 +Openstack-Request-Id: req-57c9ed41-8125-40ac-a4d3-e1ffda953640 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "ce55850c-3a5d-4c58-9640-d2dd051a25cb", "created_at": "2024-01-06T10:56:51.669329+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/ce55850c-3a5d-4c58-9640-d2dd051a25cb", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/ports", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/states", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/volume", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] -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.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.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.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_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.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_utils.TempFilesTestCase.test_is_memory_insufficient_good -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_good ... 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 -GOT:Response: 200 OK +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.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_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_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.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_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.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_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.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.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_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted ... 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.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.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_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_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 +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-377d3ff6-64f8-4fc9-80c0-0843bc68bd67 +Location: http://localhost/v1/nodes/cdc9a575-e43f-4682-8037-a950ad60a341 +Openstack-Request-Id: req-4323b2c9-54ea-4d7f-b5a3-24a02833ce92 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "ce55850c-3a5d-4c58-9640-d2dd051a25cb", "created_at": "2024-01-06T10:56:51.669329+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/ce55850c-3a5d-4c58-9640-d2dd051a25cb", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/ports", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/states", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/volume", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "cdc9a575-e43f-4682-8037-a950ad60a341", "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/cdc9a575-e43f-4682-8037-a950ad60a341", "rel": "self"}, {"href": "http://localhost/nodes/cdc9a575-e43f-4682-8037-a950ad60a341", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/cdc9a575-e43f-4682-8037-a950ad60a341/ports", "rel": "self"}, {"href": "http://localhost/nodes/cdc9a575-e43f-4682-8037-a950ad60a341/ports", "rel": "bookmark"}]} +GET: /v1/nodes/cdc9a575-e43f-4682-8037-a950ad60a341 {} +GOT:{'uuid': 'cdc9a575-e43f-4682-8037-a950ad60a341', '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/cdc9a575-e43f-4682-8037-a950ad60a341', 'rel': 'self'}, {'href': 'http://localhost/nodes/cdc9a575-e43f-4682-8037-a950ad60a341', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/cdc9a575-e43f-4682-8037-a950ad60a341/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/cdc9a575-e43f-4682-8037-a950ad60a341/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-0e5d5c05-41b5-4a56-9533-01243f617259 +Openstack-Request-Id: req-4b640bda-adb0-4789-b557-1795baf9a3b2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "ce55850c-3a5d-4c58-9640-d2dd051a25cb", "created_at": "2024-01-06T10:56:51.669329+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/ce55850c-3a5d-4c58-9640-d2dd051a25cb", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/ports", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/states", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/volume", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] -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.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.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.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.TestUnbindPort.test_unbind_neutron_port -ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port ... 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.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.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync ... ok -GOT:Response: 404 Not Found +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'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-89f70100-387f-4a74-bc1c-d6e25d73cc22 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-c0cf24ac-a61d-4176-8e1c-5ce8e47ed936 X-Openstack-Ironic-Api-Maximum-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.11 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:16.354417+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-07T17:33:16.354417+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.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.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.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.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.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_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.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_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_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.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_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_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.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.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_node.TestPut.test_provision_with_deploy +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy ... 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.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.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_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.DestroyNodeTestCase.test_destroy_node_invalid_provision_state +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_invalid_provision_state ... 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.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.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: 201 Created Content-Type: application/json -Openstack-Request-Id: req-4df9e167-6eac-404c-858c-a4b512d94826 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-776540dc-4c65-4cfa-9fd8-6d99a04c2472 X-Openstack-Ironic-Api-Maximum-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.10 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:16.555646+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-07T17:33:16.555646+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': '2025-02-07T17:33:16.555646+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 -Openstack-Request-Id: req-3f0bf3a2-0dfa-4ea1-8558-85a4fddb1596 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-2e5167be-8869-4377-b825-cb7e9e9a7bf8 X-Openstack-Ironic-Api-Maximum-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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:16.728634+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.TestPost.test_create_node_description +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description ... 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.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_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.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data_ipv6 +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data_ipv6 ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:16.728634+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.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_port.TestListPorts.test_collection_links +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links ... 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_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.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.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.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.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.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.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.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-09b06924-81a4-41a7-8921-5dfd9d2113e9 +Openstack-Request-Id: req-a69fb450-6dc1-48c7-b160-045942bb1959 X-Openstack-Ironic-Api-Maximum-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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:15.710859+00:00", "updated_at": "2025-02-07T17:33:15.719815+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-5de7fd17-b9c1-4251-ac78-6eb05e796b84 +Openstack-Request-Id: req-914e5f9d-7b7f-4e69-be9a-93f220c660ea X-Openstack-Ironic-Api-Maximum-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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:15.710859+00:00", "updated_at": "2025-02-07T17:33:15.719815+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-f4a3eeb2-8588-4486-9090-fc807ecb7eb0 +Openstack-Request-Id: req-67d96f76-95c0-4fab-9d03-06d74844e76e X-Openstack-Ironic-Api-Maximum-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\": \"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-f1035686-a648-4a22-9047-dc784163e559 +Openstack-Request-Id: req-41a79067-c249-4747-ae16-4853b821ca2f X-Openstack-Ironic-Api-Maximum-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\": \"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'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-4dfb4d93-ff78-4891-860c-cec0224ea2fe +Openstack-Request-Id: req-8c141a59-30fa-4348-b5c6-80f1b84d8c56 X-Openstack-Ironic-Api-Maximum-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\": \"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-340b37dc-847c-4290-82e9-ab4d2405cd86 +Openstack-Request-Id: req-807ad201-b280-4ebb-8fad-4efe6156b93d X-Openstack-Ironic-Api-Maximum-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\": \"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-4fe8f1d0-5ce7-4496-b05e-a90ae5a8f1df +Openstack-Request-Id: req-e94bee16-0c8c-4d76-aa52-7f366082b323 X-Openstack-Ironic-Api-Maximum-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\": \"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-ccfc4018-dc22-4d5b-8d65-26ff9c224d4e +Openstack-Request-Id: req-a001c4fa-7f83-4f36-bd69-75e68d2a2dd8 X-Openstack-Ironic-Api-Maximum-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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:16.485268+00:00", "updated_at": "2025-02-07T17:33:16.490863+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-ef98ae6f-4f3a-423c-8c39-d9bac02ec7dc +Openstack-Request-Id: req-4ff17895-7d8b-4d4b-a02f-33c8383b5562 X-Openstack-Ironic-Api-Maximum-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\": \"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-dd7b4693-490f-4308-9402-902b69e444b0 +Openstack-Request-Id: req-b55a46a5-2859-4911-b2e4-1f1002b9cf12 X-Openstack-Ironic-Api-Maximum-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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:16.680047+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-7663fd60-e9db-4922-a13f-e3d2241e81b7 +Openstack-Request-Id: req-bb2be3af-77d2-48e1-b818-c311e0f73e18 X-Openstack-Ironic-Api-Maximum-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 {} -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.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_utils.TempFilesTestCase.test_is_memory_insufficient_warning_only -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_warning_only ... ok +{"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-f4ff982a-3f50-4464-8c02-d4b5caed6000 +Openstack-Request-Id: req-a8f7038f-f424-4be4-9a66-47510fd34b31 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 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} +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.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.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected ... 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 +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c95eb9c5-4966-4c0c-b9a3-f50a02163c0e +Openstack-Request-Id: req-dca1fb55-9f12-4f12-b3c4-d123fbd55045 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': 'f3bf40ff-07d8-4d0a-b2ca-05042ebbd4c5'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:51.715622+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-06T10:56:51.715622+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-06T10:56:51.794942+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.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_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.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.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 -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 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-b60d7e1f-87b5-4992-a467-3c8f48d084ba +Openstack-Request-Id: req-e4fd0475-b952-40ee-bd41-3e119175bb70 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "ce55850c-3a5d-4c58-9640-d2dd051a25cb", "created_at": "2024-01-06T10:56:51.669329+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/ce55850c-3a5d-4c58-9640-d2dd051a25cb", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/ports", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/states", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/volume", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 200 OK +{"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-0f772e83-1b8d-44d5-9c3f-adc058c20971 +Openstack-Request-Id: req-e4fd0475-b952-40ee-bd41-3e119175bb70 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "ce55850c-3a5d-4c58-9640-d2dd051a25cb", "created_at": "2024-01-06T10:56:51.669329+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/ce55850c-3a5d-4c58-9640-d2dd051a25cb", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/ports", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/states", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/volume", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] -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.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.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_utils.TempFilesTestCase.test_tempdir -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir ... ok -GOT:Response: 200 OK +{"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-125bd615-0a1a-419c-82e9-0edbbc905203 +Openstack-Request-Id: req-989ac38b-0952-4110-a5c8-4d7f4c145274 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "ce55850c-3a5d-4c58-9640-d2dd051a25cb", "created_at": "2024-01-06T10:56:51.669329+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/ce55850c-3a5d-4c58-9640-d2dd051a25cb", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/ports", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/states", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/volume", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] -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-94f91f17-26bd-4840-9805-a75abb421af3 +Openstack-Request-Id: req-989ac38b-0952-4110-a5c8-4d7f4c145274 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "ce55850c-3a5d-4c58-9640-d2dd051a25cb", "created_at": "2024-01-06T10:56:51.669329+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/ce55850c-3a5d-4c58-9640-d2dd051a25cb", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/ports", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/states", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/volume", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb [{'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 -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.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_utils.TempFilesTestCase.test_tempdir_mocked -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked ... 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.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.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_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.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit ... 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_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_volume_connector.TestListVolumeConnectors.test_links -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_links ... 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.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.common.test_policy.PolicyTestCase.test_authorize_access_forbidden -ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_access_forbidden ... 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.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.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_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.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.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_policy.PolicyTestCase.test_authorize_passes -ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_passes ... 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.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire ... ok -GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T10:56:51.171878+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 {} +{"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: 404 Not Found Content-Type: application/json -{"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-b1bf56ec-ad8a-4346-b456-bf33e791aa72 +Openstack-Request-Id: req-9283e5a6-4253-4508-850d-8be49f32d286 X-Openstack-Ironic-Api-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 {} -GOT:{'connectors': [{'uuid': '43f7589c-7090-476a-b82c-ecb2324c0faa', 'connector_id': 'test-value-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/43f7589c-7090-476a-b82c-ecb2324c0faa', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/43f7589c-7090-476a-b82c-ecb2324c0faa', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '745aa242-056a-4045-b6e0-78644770481a', 'connector_id': 'test-value-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/745aa242-056a-4045-b6e0-78644770481a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/745aa242-056a-4045-b6e0-78644770481a', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'e9a25349-c97f-4626-b515-cc3931f173a7', 'connector_id': 'test-value-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/e9a25349-c97f-4626-b515-cc3931f173a7', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/e9a25349-c97f-4626-b515-cc3931f173a7', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/volume/connectors?fields=uuid,extra {} -GOT:{'connectors': [{'uuid': 'c2d2facd-ef2f-4afd-85a6-b6d9e758a49c', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/c2d2facd-ef2f-4afd-85a6-b6d9e758a49c', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/c2d2facd-ef2f-4afd-85a6-b6d9e758a49c', 'rel': 'bookmark'}]}, {'uuid': '50d0da6d-5e4e-4e6a-88a3-1375a0a390a5', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/50d0da6d-5e4e-4e6a-88a3-1375a0a390a5', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/50d0da6d-5e4e-4e6a-88a3-1375a0a390a5', 'rel': 'bookmark'}]}, {'uuid': 'ac314043-bf9a-4a91-99b2-928d99fe4d7a', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/ac314043-bf9a-4a91-99b2-928d99fe4d7a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/ac314043-bf9a-4a91-99b2-928d99fe4d7a', '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/2cf372fe-546a-4bce-a363-24d418632f63', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/2cf372fe-546a-4bce-a363-24d418632f63', 'rel': 'bookmark'}]}, {'connector_id': 'test-connector_id-1', 'links': [{'href': 'http://localhost/v1/volume/connectors/3d703583-066d-4ccb-80ec-dad110d9157f', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/3d703583-066d-4ccb-80ec-dad110d9157f', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=connector_id&limit=2&marker=3d703583-066d-4ccb-80ec-dad110d9157f'} -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 +{"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-90c51bfb-21f1-4160-9474-d6153382e82e +Openstack-Request-Id: req-9283e5a6-4253-4508-850d-8be49f32d286 X-Openstack-Ironic-Api-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': '2024-01-06T10:56:51.736634+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/ec84c516-b227-4c80-ad7c-81249edb6485 {} -GOT:{'uuid': 'ec84c516-b227-4c80-ad7c-81249edb6485', 'created_at': '2024-01-06T10:56:51.898084+00:00', 'updated_at': None, 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/ec84c516-b227-4c80-ad7c-81249edb6485', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/ec84c516-b227-4c80-ad7c-81249edb6485', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/volume/connectors/ec84c516-b227-4c80-ad7c-81249edb6485 {} -GOT:{'uuid': 'ec84c516-b227-4c80-ad7c-81249edb6485', 'created_at': '2024-01-06T10:56:51.898084+00:00', 'updated_at': None, 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/ec84c516-b227-4c80-ad7c-81249edb6485', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/ec84c516-b227-4c80-ad7c-81249edb6485', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /volume/connectors/ec84c516-b227-4c80-ad7c-81249edb6485 {} -GOT:{'uuid': 'ec84c516-b227-4c80-ad7c-81249edb6485', 'created_at': '2024-01-06T10:56:51.898084+00:00', 'updated_at': None, 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/ec84c516-b227-4c80-ad7c-81249edb6485', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/ec84c516-b227-4c80-ad7c-81249edb6485', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/volume/connectors {} -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.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_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.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.ManagerSyncPowerStatesTestCase.test_node_disappears_on_acquire -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_disappears_on_acquire ... 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_portgroup.TestListPortgroups.test_links -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links ... 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_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.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.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.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.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:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:51.794942+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-06T10:56:51.874815+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-06T10:56:51.874815+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-06T10:56:51.946744+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-06T10:56:51.946744+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.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.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.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.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_volume_connector.TestListVolumeConnectors.test_one_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one_invalid_api_version ... ok -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=uuid,spongebob {} -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/maintenance +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b1152fae-49b9-4c00-b8dd-af5c8b2ccd07 +Openstack-Request-Id: req-758ff072-c0c7-42eb-aa75-74cb88319a47 X-Openstack-Ironic-Api-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': '2024-01-06T10:56:51.638634+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 +{"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-0e2901c3-b043-4fdf-8936-b8c8c3446a28 +Openstack-Request-Id: req-758ff072-c0c7-42eb-aa75-74cb88319a47 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': '2024-01-06T10:56:51.839196+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-06T10:56:51.893560+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-06T10:56:51.945163+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/9d410f11-6bcc-4861-9ca8-34df05462872 {} -GOT:{'uuid': '9d410f11-6bcc-4861-9ca8-34df05462872', 'created_at': '2024-01-06T10:56:51.997574+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/9d410f11-6bcc-4861-9ca8-34df05462872', 'rel': 'self'}, {'href': 'http://localhost/portgroups/9d410f11-6bcc-4861-9ca8-34df05462872', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/9d410f11-6bcc-4861-9ca8-34df05462872/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/9d410f11-6bcc-4861-9ca8-34df05462872/ports', 'rel': 'bookmark'}]} -GET: /v1/portgroups/9d410f11-6bcc-4861-9ca8-34df05462872 {} -GOT:{'uuid': '9d410f11-6bcc-4861-9ca8-34df05462872', 'created_at': '2024-01-06T10:56:51.997574+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/9d410f11-6bcc-4861-9ca8-34df05462872', 'rel': 'self'}, {'href': 'http://localhost/portgroups/9d410f11-6bcc-4861-9ca8-34df05462872', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/9d410f11-6bcc-4861-9ca8-34df05462872/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/9d410f11-6bcc-4861-9ca8-34df05462872/ports', 'rel': 'bookmark'}]} -GET: /portgroups/9d410f11-6bcc-4861-9ca8-34df05462872 {} -GOT:{'uuid': '9d410f11-6bcc-4861-9ca8-34df05462872', 'created_at': '2024-01-06T10:56:51.997574+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/9d410f11-6bcc-4861-9ca8-34df05462872', 'rel': 'self'}, {'href': 'http://localhost/portgroups/9d410f11-6bcc-4861-9ca8-34df05462872', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/9d410f11-6bcc-4861-9ca8-34df05462872/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/9d410f11-6bcc-4861-9ca8-34df05462872/ports', 'rel': 'bookmark'}]} -GET: /v1/portgroups {} -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_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.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.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.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire ... ok -GOT:Response: 200 OK +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-16eea188-8afb-4485-8a9f-b9d97a271e69 +Openstack-Request-Id: req-9d25d97c-7882-4bd4-ad19-c18c77351a1e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "ce55850c-3a5d-4c58-9640-d2dd051a25cb", "created_at": "2024-01-06T10:56:51.669329+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/ce55850c-3a5d-4c58-9640-d2dd051a25cb", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/ports", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/states", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/volume", "rel": "self"}, {"href": "http://localhost/nodes/ce55850c-3a5d-4c58-9640-d2dd051a25cb/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/8655c101-3227-4932-95ae-582d5c1c4504 [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] -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-bfd4304d-b801-42a4-a087-32e9b45697be +Openstack-Request-Id: req-9d25d97c-7882-4bd4-ad19-c18c77351a1e 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/8655c101-3227-4932-95ae-582d5c1c4504 [{'path': '/console_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 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-1a9cfbbf-95b4-48a5-80ee-0b945345d7a2 +Openstack-Request-Id: req-328f38e8-b1ad-4e6c-8c83-418edca298d1 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/8655c101-3227-4932-95ae-582d5c1c4504 [{'path': '/deploy_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-9ea67ea4-541c-4c00-a67b-aa6955b55189 +Openstack-Request-Id: req-328f38e8-b1ad-4e6c-8c83-418edca298d1 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/8655c101-3227-4932-95ae-582d5c1c4504 [{'path': '/inspect_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}"} +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-82846a55-83eb-4f62-b3a5-b2e53ea5bc8f +Openstack-Request-Id: req-ae5c4c76-7e53-4ca6-996c-85ffaff0063c 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/8655c101-3227-4932-95ae-582d5c1c4504 [{'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:set_boot_device\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-be38ad84-4498-4b11-9768-54f9f355b6e4 +Openstack-Request-Id: req-ae5c4c76-7e53-4ca6-996c-85ffaff0063c 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/8655c101-3227-4932-95ae-582d5c1c4504 [{'path': '/power_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: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-249c88e1-3395-4e8b-8ed7-1ce81068962f +Openstack-Request-Id: req-9137cff4-ae3b-4f50-96a5-1aa319c40ccc 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/8655c101-3227-4932-95ae-582d5c1c4504 [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] +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.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.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.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.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 GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-11b07491-cb28-4651-9eb4-f5cebfd061af +Openstack-Request-Id: req-1586e2a0-59f1-4577-8886-f2106cf220a5 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/8655c101-3227-4932-95ae-582d5c1c4504 [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable +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-2c324774-328a-4e69-a955-55818d0ab778 +Openstack-Request-Id: req-9457e9b7-5164-41b7-86c7-439d9fbe208d 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/d47b2264-904d-4ee0-9df7-c2ce375c69ad [{'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 -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_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_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_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_portgroup.TestListPortgroups.test_one -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one ... 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.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.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.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.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_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.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.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.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_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_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.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.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_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success ... 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 -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:52.008065+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-06T10:56:52.008065+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-06T10:56:52.089435+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-06T10:56:52.089435+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-06T10:56:52.173271+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.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 -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.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.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.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.db.test_allocations.AllocationsTestCase.test_create -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create ... 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.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.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node ... 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.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.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.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.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits ... 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.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.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_manager.ManagerSyncPowerStatesTestCase.test_single_node_adopt_failed -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node_adopt_failed ... 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.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.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.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.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.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_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.db.test_allocations.AllocationsTestCase.test_destroy_allocation -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation ... 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.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.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target ... 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_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_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:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:52.173271+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-06T10:56:52.249559+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-06T10:56:52.249559+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-06T10:56:52.336557+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_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: 200 OK +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-3bb46600-8ab1-49a8-97ba-defdeea4c76e +Openstack-Request-Id: req-c6854d4c-c20d-4f43-b4fc-a15036e94779 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.65 -{"uuid": "d47b2264-904d-4ee0-9df7-c2ce375c69ad", "created_at": "2024-01-06T10:56:52.049475+00:00", "updated_at": null, "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/d47b2264-904d-4ee0-9df7-c2ce375c69ad", "rel": "self"}, {"href": "http://localhost/nodes/d47b2264-904d-4ee0-9df7-c2ce375c69ad", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d47b2264-904d-4ee0-9df7-c2ce375c69ad/ports", "rel": "self"}, {"href": "http://localhost/nodes/d47b2264-904d-4ee0-9df7-c2ce375c69ad/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d47b2264-904d-4ee0-9df7-c2ce375c69ad/states", "rel": "self"}, {"href": "http://localhost/nodes/d47b2264-904d-4ee0-9df7-c2ce375c69ad/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d47b2264-904d-4ee0-9df7-c2ce375c69ad/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d47b2264-904d-4ee0-9df7-c2ce375c69ad/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d47b2264-904d-4ee0-9df7-c2ce375c69ad/volume", "rel": "self"}, {"href": "http://localhost/nodes/d47b2264-904d-4ee0-9df7-c2ce375c69ad/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/de34b1f0-40ea-4830-b6a2-17b29f38f0a4 [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] +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': '0b73b88a-144b-444c-b204-30ef99078510', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/0b73b88a-144b-444c-b204-30ef99078510', 'rel': 'self'}, {'href': 'http://localhost/nodes/0b73b88a-144b-444c-b204-30ef99078510', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?description_contains=dog {} +GOT:{'nodes': [{'uuid': 'a13c2adc-897a-4b91-a28a-d47fb9013d49', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/a13c2adc-897a-4b91-a28a-d47fb9013d49', 'rel': 'self'}, {'href': 'http://localhost/nodes/a13c2adc-897a-4b91-a28a-d47fb9013d49', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?driver=ipmi {} +GOT:{'nodes': [{'uuid': 'f9f09e61-035d-42f6-9598-814ff802f2f0', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/f9f09e61-035d-42f6-9598-814ff802f2f0', 'rel': 'self'}, {'href': 'http://localhost/nodes/f9f09e61-035d-42f6-9598-814ff802f2f0', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?driver=fake-hardware {} +GOT:{'nodes': [{'uuid': '4ff2bb2f-f644-4553-89c2-e6e2038f8171', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/4ff2bb2f-f644-4553-89c2-e6e2038f8171', 'rel': 'self'}, {'href': 'http://localhost/nodes/4ff2bb2f-f644-4553-89c2-e6e2038f8171', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?driver=fake {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-4e65418f-08f8-4909-a4d5-160aa2e8c82a +Openstack-Request-Id: req-399dc12b-81ea-4605-82c5-abae79c6b321 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/f50416c3-6418-4201-b690-b24aa6aeb899 [{'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'}] +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': 'fc05bf91-8971-4a1d-b820-561cc11fd72b', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/fc05bf91-8971-4a1d-b820-561cc11fd72b', 'rel': 'self'}, {'href': 'http://localhost/nodes/fc05bf91-8971-4a1d-b820-561cc11fd72b', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?fault=clean failure {} +GOT:{'nodes': [{'uuid': '4cb1c67b-ed35-4ba7-80ce-c3a98bcd6108', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/4cb1c67b-ed35-4ba7-80ce-c3a98bcd6108', 'rel': 'self'}, {'href': 'http://localhost/nodes/4cb1c67b-ed35-4ba7-80ce-c3a98bcd6108', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?fault=power failure {} +GOT:{'nodes': [{'uuid': 'fc05bf91-8971-4a1d-b820-561cc11fd72b', 'created_at': '2025-02-07T17:33:16.824302+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/fc05bf91-8971-4a1d-b820-561cc11fd72b', 'rel': 'self'}, {'href': 'http://localhost/nodes/fc05bf91-8971-4a1d-b820-561cc11fd72b', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/fc05bf91-8971-4a1d-b820-561cc11fd72b/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/fc05bf91-8971-4a1d-b820-561cc11fd72b/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/fc05bf91-8971-4a1d-b820-561cc11fd72b/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/fc05bf91-8971-4a1d-b820-561cc11fd72b/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/fc05bf91-8971-4a1d-b820-561cc11fd72b/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/fc05bf91-8971-4a1d-b820-561cc11fd72b/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/fc05bf91-8971-4a1d-b820-561cc11fd72b/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/fc05bf91-8971-4a1d-b820-561cc11fd72b/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.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_false +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_false ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a16d5809-80f2-4b6f-a18d-5018b95ebf22 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.66 -{"uuid": "f50416c3-6418-4201-b690-b24aa6aeb899", "created_at": "2024-01-06T10:56:52.223722+00:00", "updated_at": null, "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/f50416c3-6418-4201-b690-b24aa6aeb899", "rel": "self"}, {"href": "http://localhost/nodes/f50416c3-6418-4201-b690-b24aa6aeb899", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f50416c3-6418-4201-b690-b24aa6aeb899/ports", "rel": "self"}, {"href": "http://localhost/nodes/f50416c3-6418-4201-b690-b24aa6aeb899/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f50416c3-6418-4201-b690-b24aa6aeb899/states", "rel": "self"}, {"href": "http://localhost/nodes/f50416c3-6418-4201-b690-b24aa6aeb899/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f50416c3-6418-4201-b690-b24aa6aeb899/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f50416c3-6418-4201-b690-b24aa6aeb899/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f50416c3-6418-4201-b690-b24aa6aeb899/volume", "rel": "self"}, {"href": "http://localhost/nodes/f50416c3-6418-4201-b690-b24aa6aeb899/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/fa9aa021-73c5-4593-8b91-2244879099af [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] -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.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.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate ... 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.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.db.test_allocations.AllocationsTestCase.test_destroy_allocation_uuid -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_uuid ... 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.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_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.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.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked ... ok -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-6cf4fa58-a543-4192-a28b-a5d4ea242690 +Openstack-Request-Id: req-e2cdf8c7-30a2-4e21-8939-ddd2dd9d3144 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:16.066557+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-6cf4fa58-a543-4192-a28b-a5d4ea242690 +Openstack-Request-Id: req-e2cdf8c7-30a2-4e21-8939-ddd2dd9d3144 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:16.066557+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-16ef3e90-42da-477b-ab21-1e6f8911b7be +Openstack-Request-Id: req-7a241771-f0d4-4569-829f-7b6effd9824c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-16ef3e90-42da-477b-ab21-1e6f8911b7be +Openstack-Request-Id: req-7a241771-f0d4-4569-829f-7b6effd9824c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 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-88808ef9-36e3-4933-9ce3-73c811cece64 +Openstack-Request-Id: req-23accbbc-e6fc-4c56-a6e4-1301a4ac0f9b X-Openstack-Ironic-Api-Maximum-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-88808ef9-36e3-4933-9ce3-73c811cece64 +Openstack-Request-Id: req-23accbbc-e6fc-4c56-a6e4-1301a4ac0f9b X-Openstack-Ironic-Api-Maximum-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: 403 Forbidden +{"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.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: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c46bb622-261f-4386-9cd8-93f32d989fda +Openstack-Request-Id: req-009648e5-9290-40c2-b33e-ae425c0b9bb6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"uuid": "dbc9c1c5-d7bd-42ba-bec2-afaed0f98a83", "created_at": "2025-02-07T17:33:16.254188+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/dbc9c1c5-d7bd-42ba-bec2-afaed0f98a83", "rel": "self"}, {"href": "http://localhost/nodes/dbc9c1c5-d7bd-42ba-bec2-afaed0f98a83", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/dbc9c1c5-d7bd-42ba-bec2-afaed0f98a83/ports", "rel": "self"}, {"href": "http://localhost/nodes/dbc9c1c5-d7bd-42ba-bec2-afaed0f98a83/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/dbc9c1c5-d7bd-42ba-bec2-afaed0f98a83/states", "rel": "self"}, {"href": "http://localhost/nodes/dbc9c1c5-d7bd-42ba-bec2-afaed0f98a83/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/dbc9c1c5-d7bd-42ba-bec2-afaed0f98a83/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/dbc9c1c5-d7bd-42ba-bec2-afaed0f98a83/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/dbc9c1c5-d7bd-42ba-bec2-afaed0f98a83/volume", "rel": "self"}, {"href": "http://localhost/nodes/dbc9c1c5-d7bd-42ba-bec2-afaed0f98a83/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/a93e3ffa-cd1a-43c9-9683-349aaaedac72 [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-c46bb622-261f-4386-9cd8-93f32d989fda +Openstack-Request-Id: req-5165cc99-9568-4d4a-bf59-e4232407bded X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.32 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/9071aae1-f94c-4db5-a3e3-2e00d39ba376 [{'path': '/traits', 'value': ['CUSTOM_1'], 'op': 'add'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-0213f6d9-05f5-4026-9ec7-1e3c23d83a1e +Openstack-Request-Id: req-2bf1037e-42df-4bc5-95a5-045f373c8dca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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\": \"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-0213f6d9-05f5-4026-9ec7-1e3c23d83a1e +Openstack-Request-Id: req-381c2042-ff63-47d5-84b9-2d378ab5b1ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +X-Openstack-Ironic-Api-Version: 1.45 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:16.672721+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"}]} +GET: /v1/ports/?limit=3 {} +GOT:{'ports': [{'uuid': 'fdac3abd-5757-4b36-999d-6856dbf1ee6b', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/fdac3abd-5757-4b36-999d-6856dbf1ee6b', 'rel': 'self'}, {'href': 'http://localhost/ports/fdac3abd-5757-4b36-999d-6856dbf1ee6b', 'rel': 'bookmark'}]}, {'uuid': 'd1074d5b-65f6-45ec-a235-825486a1366d', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/d1074d5b-65f6-45ec-a235-825486a1366d', 'rel': 'self'}, {'href': 'http://localhost/ports/d1074d5b-65f6-45ec-a235-825486a1366d', 'rel': 'bookmark'}]}, {'uuid': 'e5d6c988-6b75-4ce2-9cde-dff5e26dcdac', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/e5d6c988-6b75-4ce2-9cde-dff5e26dcdac', 'rel': 'self'}, {'href': 'http://localhost/ports/e5d6c988-6b75-4ce2-9cde-dff5e26dcdac', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=e5d6c988-6b75-4ce2-9cde-dff5e26dcdac'} +GET: /v1/ports?fields=address,uuid {} +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.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.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_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.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_port.TestListPorts.test_detail +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail ... ok +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-95e43457-59b3-4385-a8d9-99cedec0053b +Openstack-Request-Id: req-bc3041cd-c88e-49c2-84be-5862c72b1549 X-Openstack-Ironic-Api-Maximum-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\": \"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-95e43457-59b3-4385-a8d9-99cedec0053b +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-3e0625d7-0592-423a-aaf4-65237751ae41 X-Openstack-Ironic-Api-Maximum-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: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:16.952971+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': '2025-02-07T17:33:16.952971+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.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.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.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.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.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_neutron.TestNeutronNetworkActions.test_is_smartnic_port_true +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_true ... 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_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.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_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.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.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.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_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.test_root.TestV1Root.test_get_v1_22_root +ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_22_root ... 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.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.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_manager.DestroyNodeTestCase.test_destroy_node_reserved +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved ... 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 +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-c323793c-c29f-44eb-a7d1-43c8ac880b56 +Openstack-Request-Id: req-06f5e1fd-eedc-4da7-bcda-d55656a3152d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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-c323793c-c29f-44eb-a7d1-43c8ac880b56 +Openstack-Request-Id: req-bcf55dd3-c27a-402d-abbe-01935c7f5efd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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-79e3fa8f-a815-45e8-a826-61ec520dbf71 +Openstack-Request-Id: req-4caa9fd1-da14-46b3-afa8-d0e36a853236 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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\": \"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-79e3fa8f-a815-45e8-a826-61ec520dbf71 +Openstack-Request-Id: req-77e81b86-f5c8-4d65-91e0-b3ed33963d9d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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: 404 Not Found +{"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-86d42140-1235-4bb3-9ccf-8ada0b2b2152 +Openstack-Request-Id: req-cb5f7312-122f-442f-a5ac-ecd29b27e1a5 X-Openstack-Ironic-Api-Maximum-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_027_nodes_maintenance_put_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_027_nodes_maintenance_put_member ... 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 -GOT:{'connectors': [{'uuid': 'e2db6114-4ef6-4069-97ab-b6a9455e532f', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/e2db6114-4ef6-4069-97ab-b6a9455e532f', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/e2db6114-4ef6-4069-97ab-b6a9455e532f', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'a32fd5e2-f1d5-45b1-af90-8b5ba002a7e2', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/a32fd5e2-f1d5-45b1-af90-8b5ba002a7e2', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/a32fd5e2-f1d5-45b1-af90-8b5ba002a7e2', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'b5f1d7cf-68d7-4117-a4f6-23707af45ad1', 'connector_id': 'test-connector_id-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/b5f1d7cf-68d7-4117-a4f6-23707af45ad1', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/b5f1d7cf-68d7-4117-a4f6-23707af45ad1', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '215ec038-6f22-4cce-8e60-336934b1a0b9', 'connector_id': 'test-connector_id-3', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/215ec038-6f22-4cce-8e60-336934b1a0b9', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/215ec038-6f22-4cce-8e60-336934b1a0b9', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '008e8ee2-6f87-4e21-9b32-61ca46cda0d9', 'connector_id': 'test-connector_id-4', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/008e8ee2-6f87-4e21-9b32-61ca46cda0d9', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/008e8ee2-6f87-4e21-9b32-61ca46cda0d9', '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': '03e55e40-e077-47c4-883e-381ff6c0eaa7', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/03e55e40-e077-47c4-883e-381ff6c0eaa7', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/03e55e40-e077-47c4-883e-381ff6c0eaa7', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '61abce3e-139f-487e-936f-c14bd9cd55d9', 'connector_id': 'test-connector_id-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/61abce3e-139f-487e-936f-c14bd9cd55d9', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/61abce3e-139f-487e-936f-c14bd9cd55d9', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '7d0f914a-032c-4113-8869-d869719b4ecb', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/7d0f914a-032c-4113-8869-d869719b4ecb', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/7d0f914a-032c-4113-8869-d869719b4ecb', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/volume/connectors?sort_key=foo {} -GOT:Response: 400 Bad Request +{"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-5992752c-c05d-4b82-a0f2-18206f34cdb2 +Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-c20d4a15-0125-4323-bd1e-ff39669c16d1 X-Openstack-Ironic-Api-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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:16.766971+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-07T17:33:16.766971+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-53500fbc-9815-43e0-9406-31ec6fab0ff0 +Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-9130b3db-4a6f-40cf-ac87-3c04052b1c87 X-Openstack-Ironic-Api-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}"} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:16.846466+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/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-3dde1506-eee2-427d-865e-4a7e995cf0af +Openstack-Request-Id: req-fea9c99a-25c8-4c27-b24a-300f507258e2 X-Openstack-Ironic-Api-Maximum-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-3dde1506-eee2-427d-865e-4a7e995cf0af +Openstack-Request-Id: req-fea9c99a-25c8-4c27-b24a-300f507258e2 X-Openstack-Ironic-Api-Maximum-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_root.TestV1Root.test_get_v1_23_root +ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_23_root ... 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 -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.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.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.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_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.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.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy ... 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.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.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.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_not_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed ... 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 -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:52.336557+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-06T10:56:52.425892+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-06T10:56:52.425892+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.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_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_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.test_acl.TestRBACBasic.test_basic_5_public_api -ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_5_public_api ... 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.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.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.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.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 -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-e5a868b7-90e7-4860-ad75-6a586a73a9ad -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.66 -{"uuid": "fa9aa021-73c5-4593-8b91-2244879099af", "created_at": "2024-01-06T10:56:52.338974+00:00", "updated_at": null, "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/fa9aa021-73c5-4593-8b91-2244879099af", "rel": "self"}, {"href": "http://localhost/nodes/fa9aa021-73c5-4593-8b91-2244879099af", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fa9aa021-73c5-4593-8b91-2244879099af/ports", "rel": "self"}, {"href": "http://localhost/nodes/fa9aa021-73c5-4593-8b91-2244879099af/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fa9aa021-73c5-4593-8b91-2244879099af/states", "rel": "self"}, {"href": "http://localhost/nodes/fa9aa021-73c5-4593-8b91-2244879099af/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fa9aa021-73c5-4593-8b91-2244879099af/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fa9aa021-73c5-4593-8b91-2244879099af/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fa9aa021-73c5-4593-8b91-2244879099af/volume", "rel": "self"}, {"href": "http://localhost/nodes/fa9aa021-73c5-4593-8b91-2244879099af/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/8ff208bd-081e-4065-85ca-796548fc6eae [{'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 +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 +/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_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_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.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.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.test_root.TestV1Root.test_get_v1_32_root +ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root ... 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.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.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.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.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_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout ... 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.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 +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-dd333b72-d844-4a9c-ae66-82d9ef1bc743 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-cc462a35-e5e0-42e1-b4f6-76c6045ea2d6 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/3e9da748-c3dd-4797-906f-7e9c14a248f5 [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] -GOT:Response: 400 Bad Request +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-ee67479d-0a24-458b-aceb-aaecb7616c1e +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-45573b31-b096-4385-8056-b72a83575f89 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/9650818d-3602-4c1b-af7f-793a3b3462e5 [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] -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.api.controllers.v1.test_node.TestPatch.test_update_network_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface ... ok -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.21 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:17.364886+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-07T17:33:17.364886+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.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_args.ValidatePatchSchemaTest.test_patch +ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch ... 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_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.conductor.test_utils.CacheBootModeTestCase.test_already_present +ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_already_present ... 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.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.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 +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-b8959e6c-1c1a-4ba7-b31a-9dfa57d52754 +Openstack-Request-Id: req-f0bc9f08-9420-4132-a30d-b691d2eac27c 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-06T10:56:52.395741+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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 -ACL Test GOT Response: 200 OK +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'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-b8959e6c-1c1a-4ba7-b31a-9dfa57d52754 +Openstack-Request-Id: req-a27bd03a-8891-4b90-8f65-f2a4ed352f48 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-06T10:56:52.395741+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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 +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'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-a0aa93d1-05ef-4ffc-a97c-2b1bd38c5acf +Openstack-Request-Id: req-81cc661e-0c04-4527-9a9b-951ebfb87cbb X-Openstack-Ironic-Api-Maximum-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.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-a0aa93d1-05ef-4ffc-a97c-2b1bd38c5acf +Openstack-Request-Id: req-1d742938-ffcc-4c96-ab33-0078e656848e X-Openstack-Ironic-Api-Maximum-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-b052cd88-bc9d-4c09-892f-b30652e3fce6 -{"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-b052cd88-bc9d-4c09-892f-b30652e3fce6 -{"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 {} -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.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.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.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.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 -GOT:{'portgroups': [{'uuid': 'bebeb7d9-2cde-4a72-864c-87cd79e537e6', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/bebeb7d9-2cde-4a72-864c-87cd79e537e6', 'rel': 'self'}, {'href': 'http://localhost/portgroups/bebeb7d9-2cde-4a72-864c-87cd79e537e6', 'rel': 'bookmark'}]}, {'uuid': 'b1701634-129f-4c91-b825-f47002140686', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/b1701634-129f-4c91-b825-f47002140686', 'rel': 'self'}, {'href': 'http://localhost/portgroups/b1701634-129f-4c91-b825-f47002140686', 'rel': 'bookmark'}]}, {'uuid': '4781d649-ad01-47f8-b156-50325df4e56c', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/4781d649-ad01-47f8-b156-50325df4e56c', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4781d649-ad01-47f8-b156-50325df4e56c', 'rel': 'bookmark'}]}, {'uuid': '7a2e687d-f60b-4b30-9bfc-c5bb92f9a1fa', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/7a2e687d-f60b-4b30-9bfc-c5bb92f9a1fa', 'rel': 'self'}, {'href': 'http://localhost/portgroups/7a2e687d-f60b-4b30-9bfc-c5bb92f9a1fa', 'rel': 'bookmark'}]}, {'uuid': '47d49dee-5159-43ff-afb2-74456954b244', 'address': '52:54:00:cf:2d:34', 'name': 'portgroup4', 'links': [{'href': 'http://localhost/v1/portgroups/47d49dee-5159-43ff-afb2-74456954b244', 'rel': 'self'}, {'href': 'http://localhost/portgroups/47d49dee-5159-43ff-afb2-74456954b244', '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': 'd4c25ab9-526c-495c-81b3-f37486852047', 'address': 'aa:bb:cc:dd:ee:f1', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/d4c25ab9-526c-495c-81b3-f37486852047', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d4c25ab9-526c-495c-81b3-f37486852047', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups?address=invalid-mac-format {} +X-Openstack-Ironic-Api-Version: 1.4 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected types , for clean_steps: foo\", \"debuginfo\": null}"} +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-fc67a83d-3f38-4503-a3a6-019f730ff1a4 +Openstack-Request-Id: req-0e7baca4-4a88-4d53-9f44-76f05e4c344d X-Openstack-Ironic-Api-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 -Content-Type: application/json -Openstack-Request-Id: req-8ea9cab0-fd6f-4235-a2ad-ba579d5972ed +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\", \"debuginfo\": null}"} +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-00032bde-9e26-4821-9f82-566550b79453 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/46166c81-73fc-477d-a758-599a50445d3d/ports {} -GOT:{'ports': [{'uuid': '9ca87e38-da0c-4b08-8987-cf2a448b912b', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/9ca87e38-da0c-4b08-8987-cf2a448b912b', 'rel': 'self'}, {'href': 'http://localhost/ports/9ca87e38-da0c-4b08-8987-cf2a448b912b', 'rel': 'bookmark'}]}, {'uuid': 'f8e590fd-1f4e-4aa1-b760-3751fa054d24', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/f8e590fd-1f4e-4aa1-b760-3751fa054d24', 'rel': 'self'}, {'href': 'http://localhost/ports/f8e590fd-1f4e-4aa1-b760-3751fa054d24', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups/46166c81-73fc-477d-a758-599a50445d3d/ports/detail {} -GOT:{'ports': [{'uuid': '9ca87e38-da0c-4b08-8987-cf2a448b912b', 'created_at': '2024-01-06T10:56:52.386224+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/9ca87e38-da0c-4b08-8987-cf2a448b912b', 'rel': 'self'}, {'href': 'http://localhost/ports/9ca87e38-da0c-4b08-8987-cf2a448b912b', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '46166c81-73fc-477d-a758-599a50445d3d'}, {'uuid': 'f8e590fd-1f4e-4aa1-b760-3751fa054d24', 'created_at': '2024-01-06T10:56:52.387922+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/f8e590fd-1f4e-4aa1-b760-3751fa054d24', 'rel': 'self'}, {'href': 'http://localhost/ports/f8e590fd-1f4e-4aa1-b760-3751fa054d24', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '46166c81-73fc-477d-a758-599a50445d3d'}]} -GET: /v1/portgroups/46166c81-73fc-477d-a758-599a50445d3d/ports?limit=1 {} -GOT:{'ports': [{'uuid': '9ca87e38-da0c-4b08-8987-cf2a448b912b', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/9ca87e38-da0c-4b08-8987-cf2a448b912b', 'rel': 'self'}, {'href': 'http://localhost/ports/9ca87e38-da0c-4b08-8987-cf2a448b912b', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=9ca87e38-da0c-4b08-8987-cf2a448b912b'} -GET: /v1/portgroups/46166c81-73fc-477d-a758-599a50445d3d/ports/42a40151-80e0-4a3a-978f-ed57e86f43ab {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/portgroups/46166c81-73fc-477d-a758-599a50445d3d/ports/d19a074f-5b66-4603-ad25-0f77fea41758 {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-d174b453-640b-45cc-9b25-468f80469ee5 +X-Openstack-Ironic-Api-Version: 1.1 + +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-79b6c03d-6bca-4272-a214-536074c37e06 X-Openstack-Ironic-Api-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/portgroups/b348e1ae-5f93-4e7d-9af0-0a3e71570fed/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-44f28fbd-0e09-46f8-991b-3519dcc6779e +X-Openstack-Ironic-Api-Version: 1.1 + +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-2198e594-6197-4058-a2dc-6c1b8368b1a8 X-Openstack-Ironic-Api-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 {} -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.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.controllers.v1.test_node.TestListNodes.test_links -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links ... 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.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.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.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 -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-677550d0-b3f8-40b9-877b-7db6a14a1d22 +X-Openstack-Ironic-Api-Version: 1.1 + +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-6ebc23e2-7fbf-4f25-b3c0-9e081903144e 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-677550d0-b3f8-40b9-877b-7db6a14a1d22 +X-Openstack-Ironic-Api-Version: 1.56 + +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-a2c4af2e-e0be-45a6-b790-e81f86f9963d 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 +X-Openstack-Ironic-Api-Version: 1.60 + +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-0a82fd3c-a54a-4a27-b5ac-5a3aa3a8b0e3 +Openstack-Request-Id: req-e0c74b98-f129-4276-9709-58b9ac2f4f7e 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_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.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_allocations.AllocationsTestCase.test_get_allocation_by_uuid -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid ... 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_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_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.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_allowed ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:52.525509+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-06T10:56:52.525509+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/41c0b769-cd05-4e70-975e-07ff7f3aaa7d {} -GOT:{'uuid': '41c0b769-cd05-4e70-975e-07ff7f3aaa7d', 'created_at': '2024-01-06T10:56:52.608008+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/41c0b769-cd05-4e70-975e-07ff7f3aaa7d', 'rel': 'self'}, {'href': 'http://localhost/nodes/41c0b769-cd05-4e70-975e-07ff7f3aaa7d', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/41c0b769-cd05-4e70-975e-07ff7f3aaa7d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/41c0b769-cd05-4e70-975e-07ff7f3aaa7d/ports', 'rel': 'bookmark'}]} -GET: /v1/nodes/41c0b769-cd05-4e70-975e-07ff7f3aaa7d {} -GOT:{'uuid': '41c0b769-cd05-4e70-975e-07ff7f3aaa7d', 'created_at': '2024-01-06T10:56:52.608008+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/41c0b769-cd05-4e70-975e-07ff7f3aaa7d', 'rel': 'self'}, {'href': 'http://localhost/nodes/41c0b769-cd05-4e70-975e-07ff7f3aaa7d', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/41c0b769-cd05-4e70-975e-07ff7f3aaa7d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/41c0b769-cd05-4e70-975e-07ff7f3aaa7d/ports', 'rel': 'bookmark'}]} -GET: /nodes/41c0b769-cd05-4e70-975e-07ff7f3aaa7d {} -GOT:{'uuid': '41c0b769-cd05-4e70-975e-07ff7f3aaa7d', 'created_at': '2024-01-06T10:56:52.608008+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/41c0b769-cd05-4e70-975e-07ff7f3aaa7d', 'rel': 'self'}, {'href': 'http://localhost/nodes/41c0b769-cd05-4e70-975e-07ff7f3aaa7d', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/41c0b769-cd05-4e70-975e-07ff7f3aaa7d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/41c0b769-cd05-4e70-975e-07ff7f3aaa7d/ports', 'rel': 'bookmark'}]} -GET: /v1/nodes/09370281-68d2-4029-b7a1-e4f5b2136501 {} -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.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.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.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.NodeTraitsTestCase.test_remove_node_traits_empty -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_empty ... 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.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.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.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_portgroup.TestListPortgroups.test_sort_key_invalid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_invalid ... 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.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_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.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_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.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped -ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped ... 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.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.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.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_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync -ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync ... 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.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 -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -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.api.test_method.TestExpose.test_exception -ironic.tests.unit.api.test_method.TestExpose.test_exception ... 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.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.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.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_steps.GetValidatedStepsFromTemplatesTestCase.test_instance_deploy_failure -ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_instance_deploy_failure ... 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.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.api.test_method.TestExpose.test_expose -ironic.tests.unit.api.test_method.TestExpose.test_expose ... 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.conductor.test_manager.IndicatorsTestCase.test_get_indicator_state -ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_indicator_state ... 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.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.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_ramdisk_params -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ramdisk_params ... 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_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.IndicatorsTestCase.test_get_supported_indicators -ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_supported_indicators ... 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.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.api.test_method.TestExpose.test_post_body -ironic.tests.unit.api.test_method.TestExpose.test_post_body ... 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_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.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_node.TestListNodes.test_maintenance_nodes_error -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_error ... 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_steps.GetValidatedStepsFromTemplatesTestCase.test_ok -ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_ok ... 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 -ACL Test GOT Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.60 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected types , , for configdrive: ['aabb']\", \"debuginfo\": null}"} +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-0a82fd3c-a54a-4a27-b5ac-5a3aa3a8b0e3 +Openstack-Request-Id: req-1a9b40df-e1a9-42c7-82aa-32cc9ccd4c08 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 {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-86db315d-c91e-4036-af3a-e06eb0bd2ddf +X-Openstack-Ironic-Api-Version: 1.60 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid configdrive format: it is neither a JSON, nor a URL, nor a base64 string\", \"debuginfo\": null}"} +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-2a884ba1-f0b4-4acc-ae4c-34ea0e7b4b46 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-86db315d-c91e-4036-af3a-e06eb0bd2ddf +X-Openstack-Ironic-Api-Version: 1.1 + +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-c1c16117-9a28-4328-bf5c-086002dd29a6 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\": \"\"}"} -GET: /v1/things/ouch {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-dd7f9df0-35ad-4280-8011-7d0d079b53e5 -{"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-1fe325f4-2e4d-492c-9509-25937310943d -{"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-20527f7f-950e-44b6-9301-ea32460a2035 -{"three": "three", "four": "four", "five": "five"} -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.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.conductor.test_manager.IndicatorsTestCase.test_set_indicator_state -ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_set_indicator_state ... 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.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.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.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.TestPXEUtils.test__get_pxe_mac_path -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path ... 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_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.test_method.TestExpose.test_response_content -ironic.tests.unit.api.test_method.TestExpose.test_response_content ... 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.db.test_allocations.AllocationsTestCase.test_take_over_conflict -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_conflict ... 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.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_method.TestExpose.test_response_custom_status -ironic.tests.unit.api.test_method.TestExpose.test_response_custom_status ... ok -GOT:{'uuid': '09370281-68d2-4029-b7a1-e4f5b2136501', 'created_at': '2024-01-06T10:56:52.711293+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/09370281-68d2-4029-b7a1-e4f5b2136501', 'rel': 'self'}, {'href': 'http://foo/nodes/09370281-68d2-4029-b7a1-e4f5b2136501', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://foo/v1/nodes/09370281-68d2-4029-b7a1-e4f5b2136501/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/09370281-68d2-4029-b7a1-e4f5b2136501/ports', 'rel': 'bookmark'}]} -GET: /v1/nodes/09370281-68d2-4029-b7a1-e4f5b2136501 {} -GOT:{'uuid': '09370281-68d2-4029-b7a1-e4f5b2136501', 'created_at': '2024-01-06T10:56:52.711293+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/09370281-68d2-4029-b7a1-e4f5b2136501', 'rel': 'self'}, {'href': 'http://foo/nodes/09370281-68d2-4029-b7a1-e4f5b2136501', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://foo/v1/nodes/09370281-68d2-4029-b7a1-e4f5b2136501/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/09370281-68d2-4029-b7a1-e4f5b2136501/ports', 'rel': 'bookmark'}]} -GET: /nodes/09370281-68d2-4029-b7a1-e4f5b2136501 {} -GOT:{'uuid': '09370281-68d2-4029-b7a1-e4f5b2136501', 'created_at': '2024-01-06T10:56:52.711293+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/09370281-68d2-4029-b7a1-e4f5b2136501', 'rel': 'self'}, {'href': 'http://foo/nodes/09370281-68d2-4029-b7a1-e4f5b2136501', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://foo/v1/nodes/09370281-68d2-4029-b7a1-e4f5b2136501/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/09370281-68d2-4029-b7a1-e4f5b2136501/ports', 'rel': 'bookmark'}]} -GET: /v1/nodes?maintenance=true {} -GOT:{'nodes': [{'uuid': '17b0863b-0381-4fa6-934d-ab3b6733ef29', 'instance_uuid': None, 'maintenance': True, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/17b0863b-0381-4fa6-934d-ab3b6733ef29', 'rel': 'self'}, {'href': 'http://localhost/nodes/17b0863b-0381-4fa6-934d-ab3b6733ef29', 'rel': 'bookmark'}]}, {'uuid': 'ffca10ac-ba3e-4598-b1ef-1d4d0fcc59c0', 'instance_uuid': None, 'maintenance': True, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/ffca10ac-ba3e-4598-b1ef-1d4d0fcc59c0', 'rel': 'self'}, {'href': 'http://localhost/nodes/ffca10ac-ba3e-4598-b1ef-1d4d0fcc59c0', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?maintenance=false {} -GOT:{'nodes': [{'uuid': '358759a1-2409-4cac-9da5-379836d2a0fe', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/358759a1-2409-4cac-9da5-379836d2a0fe', 'rel': 'self'}, {'href': 'http://localhost/nodes/358759a1-2409-4cac-9da5-379836d2a0fe', 'rel': 'bookmark'}]}, {'uuid': '7a05a2a9-aa18-452b-8411-8f17ac84fcc2', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/7a05a2a9-aa18-452b-8411-8f17ac84fcc2', 'rel': 'self'}, {'href': 'http://localhost/nodes/7a05a2a9-aa18-452b-8411-8f17ac84fcc2', 'rel': 'bookmark'}]}, {'uuid': 'b297c1bf-accf-4906-b5d2-d8f16d5d02ce', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/b297c1bf-accf-4906-b5d2-d8f16d5d02ce', 'rel': 'self'}, {'href': 'http://localhost/nodes/b297c1bf-accf-4906-b5d2-d8f16d5d02ce', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?associated=true&maintenance=false {} -GOT:{'nodes': [{'uuid': 'e4a4573d-9255-44c3-9cf0-f15f9f559259', 'instance_uuid': 'e99d06c9-ae4e-4ef7-b1a5-7843ca3cb436', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/e4a4573d-9255-44c3-9cf0-f15f9f559259', 'rel': 'self'}, {'href': 'http://localhost/nodes/e4a4573d-9255-44c3-9cf0-f15f9f559259', 'rel': 'bookmark'}]}, {'uuid': 'a98915da-34aa-4613-894f-c3f0e7189b89', 'instance_uuid': '4f9f7b01-38a2-41d9-904a-2385a8386257', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/a98915da-34aa-4613-894f-c3f0e7189b89', 'rel': 'self'}, {'href': 'http://localhost/nodes/a98915da-34aa-4613-894f-c3f0e7189b89', 'rel': 'bookmark'}]}, {'uuid': 'fe07c476-13a3-467e-8e1b-34d204ce03b7', 'instance_uuid': '34dc92d2-2237-4f45-ba9c-069584f7d23e', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/fe07c476-13a3-467e-8e1b-34d204ce03b7', 'rel': 'self'}, {'href': 'http://localhost/nodes/fe07c476-13a3-467e-8e1b-34d204ce03b7', 'rel': 'bookmark'}]}, {'uuid': 'c2c9ad5e-a860-44fa-ac21-fb8dd6670d5a', 'instance_uuid': '729531e3-96ea-49a7-80d0-6d062523dfc6', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/c2c9ad5e-a860-44fa-ac21-fb8dd6670d5a', 'rel': 'self'}, {'href': 'http://localhost/nodes/c2c9ad5e-a860-44fa-ac21-fb8dd6670d5a', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?associated=true&maintenance=true {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': '39388c6e-8bde-4251-98bb-73e0aedd7b7a', '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': '39388c6e-8bde-4251-98bb-73e0aedd7b7a', '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 +X-Openstack-Ironic-Api-Version: 1.1 + +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-ea4f87e9-dafb-443d-b0e0-0aca7150235d +Openstack-Request-Id: req-4445d630-2869-4076-8002-e61897654e5d 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.api.controllers.v1.test_node.TestListNodes.test_many -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many ... ok -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.69\", \"debuginfo\": null}"} +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_args.ValidatePatchSchemaTest.test_patch_validation_failed +ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch_validation_failed ... 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_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.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.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.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_utils.CacheBootModeTestCase.test_change_secure_off +ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_change_secure_off ... ok +GOT:{'nodes': [{'uuid': '4cb1c67b-ed35-4ba7-80ce-c3a98bcd6108', 'created_at': '2025-02-07T17:33:16.828516+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/4cb1c67b-ed35-4ba7-80ce-c3a98bcd6108', 'rel': 'self'}, {'href': 'http://localhost/nodes/4cb1c67b-ed35-4ba7-80ce-c3a98bcd6108', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/4cb1c67b-ed35-4ba7-80ce-c3a98bcd6108/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/4cb1c67b-ed35-4ba7-80ce-c3a98bcd6108/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/4cb1c67b-ed35-4ba7-80ce-c3a98bcd6108/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/4cb1c67b-ed35-4ba7-80ce-c3a98bcd6108/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/4cb1c67b-ed35-4ba7-80ce-c3a98bcd6108/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/4cb1c67b-ed35-4ba7-80ce-c3a98bcd6108/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/4cb1c67b-ed35-4ba7-80ce-c3a98bcd6108/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/4cb1c67b-ed35-4ba7-80ce-c3a98bcd6108/volume', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?fault=power failure {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-9d669b9e-0886-4cf4-b230-0c26e06754bd +Openstack-Request-Id: req-ec0a23d6-0e5d-414b-a466-067f094c3f47 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "9650818d-3602-4c1b-af7f-793a3b3462e5", "created_at": "2024-01-06T10:56:52.567951+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/9650818d-3602-4c1b-af7f-793a3b3462e5", "rel": "self"}, {"href": "http://localhost/nodes/9650818d-3602-4c1b-af7f-793a3b3462e5", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9650818d-3602-4c1b-af7f-793a3b3462e5/ports", "rel": "self"}, {"href": "http://localhost/nodes/9650818d-3602-4c1b-af7f-793a3b3462e5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9650818d-3602-4c1b-af7f-793a3b3462e5/states", "rel": "self"}, {"href": "http://localhost/nodes/9650818d-3602-4c1b-af7f-793a3b3462e5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9650818d-3602-4c1b-af7f-793a3b3462e5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9650818d-3602-4c1b-af7f-793a3b3462e5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9650818d-3602-4c1b-af7f-793a3b3462e5/volume", "rel": "self"}, {"href": "http://localhost/nodes/9650818d-3602-4c1b-af7f-793a3b3462e5/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/eaf0d894-d736-463b-8b16-d33690201626 [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] +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 -Openstack-Request-Id: req-53da3374-71db-4d05-8073-05815a4eafbb +Openstack-Request-Id: req-1bcb6f2f-b75d-45d5-a0c0-b69f2194d84e 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 +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-53983991-1fd4-4e53-9d33-fd9915d4b689 +Openstack-Request-Id: req-3293ac4c-b75f-4de4-9a5c-d05f2384a6be 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-06T10:56:52.736499+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 +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-646f7e3a-b163-435d-83fd-bcadc870114d +Openstack-Request-Id: req-77202fe2-0bd8-42c5-82af-799c8c898c7a 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-06T10:56:52.847777+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 +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-0daf56a3-e745-440d-a487-8dffedd06800 +Openstack-Request-Id: req-6efef661-6072-4f28-b5ee-ebeb51e3355d 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-06T10:56:52.951616+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/f8cf6716-22ea-4bf3-b1b7-b9324cb4e04b [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] -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.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.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.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.RaidHardwareTypeTestCases.test_set_target_raid_config -ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config ... 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.db.test_allocations.AllocationsTestCase.test_take_over_success -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_success ... 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.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.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.db.test_allocations.AllocationsTestCase.test_update_allocation -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation ... 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_node.TestListNodes.test_many_have_names -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_have_names ... 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_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_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.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.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.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.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_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_steps.GetValidatedStepsFromTemplatesTestCase.test_skip_missing -ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_skip_missing ... 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.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.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.db.test_allocations.AllocationsTestCase.test_update_allocation_duplicated_name -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_duplicated_name ... ok +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': 'c4bd65bc-4847-47bf-87d0-374d5a8fed35', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/c4bd65bc-4847-47bf-87d0-374d5a8fed35', 'rel': 'self'}, {'href': 'http://localhost/nodes/c4bd65bc-4847-47bf-87d0-374d5a8fed35', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?lessee=project2 {} +GOT:{'nodes': [{'uuid': 'f569bef3-0d9b-4f5a-bb82-f8d1e80633d1', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/f569bef3-0d9b-4f5a-bb82-f8d1e80633d1', 'rel': 'self'}, {'href': 'http://localhost/nodes/f569bef3-0d9b-4f5a-bb82-f8d1e80633d1', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?lessee=project1 {} +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.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.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.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_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_pxe_utils.TestPXEUtils.test__write_mac_ipxe_configs -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_ipxe_configs ... ok -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-7ec1446a-2278-48d2-83be-7951a4388cf9 -X-Openstack-Ironic-Api-Maximum-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 +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.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.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.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 +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a88fe487-da1b-4f85-96be-26de9fb0e33e +Openstack-Request-Id: req-e2bd57d2-cc12-4a85-a7b0-e24857384cda X-Openstack-Ironic-Api-Maximum-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-be7b8ea4-86df-4b62-bad8-36fbe85356f0 +Openstack-Request-Id: req-e2bd57d2-cc12-4a85-a7b0-e24857384cda X-Openstack-Ironic-Api-Maximum-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-bfea1354-43e7-412c-872a-873d0740f8ef +Openstack-Request-Id: req-a07b0ff1-901b-478d-9dfa-c5cf4169db28 X-Openstack-Ironic-Api-Maximum-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: 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-cfa0af62-c292-4179-b541-893d1efa64c3 +Openstack-Request-Id: req-a07b0ff1-901b-478d-9dfa-c5cf4169db28 X-Openstack-Ironic-Api-Maximum-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: 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-e6c3ec56-bf11-4866-a2d5-f857fbeeb44d +Openstack-Request-Id: req-cc1a5474-31b6-4423-afbb-60d79397b5f8 X-Openstack-Ironic-Api-Maximum-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: 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-d2f8f1c9-49f2-474d-acd0-2873fbe60319 +Openstack-Request-Id: req-cc1a5474-31b6-4423-afbb-60d79397b5f8 X-Openstack-Ironic-Api-Maximum-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: 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-4153c967-d05b-4af3-8c98-cb4c8a048d01 +Openstack-Request-Id: req-8966569f-5d7b-4374-a16b-e27923332458 X-Openstack-Ironic-Api-Maximum-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: 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-78aa3e1e-7a3f-462c-84bd-e474074aab28 +Openstack-Request-Id: req-8966569f-5d7b-4374-a16b-e27923332458 X-Openstack-Ironic-Api-Maximum-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: 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-5a6b2ebb-185e-4c1a-8f55-dd7883a9e11c +Openstack-Request-Id: req-e676819a-c4bd-406d-8889-134b9a82313a X-Openstack-Ironic-Api-Maximum-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: 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-d9c2456a-3d92-42ec-be38-87db357e59cc +Openstack-Request-Id: req-e676819a-c4bd-406d-8889-134b9a82313a X-Openstack-Ironic-Api-Maximum-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: 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-4b90c268-a353-4a56-8592-35deda3c1be3 +Openstack-Request-Id: req-d7fe743c-6e8e-4be3-b182-861baaf12bc5 X-Openstack-Ironic-Api-Maximum-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: 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-d87e7cb2-a384-43b7-b689-2eb329e87cc2 +Openstack-Request-Id: req-d7fe743c-6e8e-4be3-b182-861baaf12bc5 X-Openstack-Ironic-Api-Maximum-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: 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-a19c181a-e9cf-4f0b-a71d-c50e00c444ad +Openstack-Request-Id: req-fe250926-9a18-4b0f-9c93-af3a248f62d0 X-Openstack-Ironic-Api-Maximum-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 -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.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.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.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.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.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.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.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.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.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.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.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 -ACL Test 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-86d42140-1235-4bb3-9ccf-8ada0b2b2152 +Openstack-Request-Id: req-fe250926-9a18-4b0f-9c93-af3a248f62d0 X-Openstack-Ironic-Api-Maximum-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 +{"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-541bb977-472d-4041-91cf-db96c5f6ff87 +Openstack-Request-Id: req-71d32cb1-e144-402b-915c-7a3f830255fc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +{"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-541bb977-472d-4041-91cf-db96c5f6ff87 +Openstack-Request-Id: req-71d32cb1-e144-402b-915c-7a3f830255fc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes +GET: /v1/nodes {} +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.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.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.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.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 +/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) +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f2b93c73-030c-47c9-90c3-b3806ff66684 +Openstack-Request-Id: req-97fdc78a-9d51-4418-b296-4087fef4e4f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-c02d7f33c123", "created_at": "2025-02-07T17:33:17.259293+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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 +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f2b93c73-030c-47c9-90c3-b3806ff66684 +Openstack-Request-Id: req-97fdc78a-9d51-4418-b296-4087fef4e4f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:17.259293+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-bfb87686-60d6-416e-a092-45c0f152a354 +Openstack-Request-Id: req-c5bbc485-9a64-4023-aa15-2589db80a11b X-Openstack-Ironic-Api-Maximum-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-bfb87686-60d6-416e-a092-45c0f152a354 +Openstack-Request-Id: req-c5bbc485-9a64-4023-aa15-2589db80a11b X-Openstack-Ironic-Api-Maximum-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: 403 Forbidden +API ACL Testing Path get / +GET: / {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6172a012-bb10-4825-aca1-0f070698bbb9 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-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 +Openstack-Request-Id: req-16860818-816e-4455-88b8-9652c63973a1 +{"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-16860818-816e-4455-88b8-9652c63973a1 +{"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 {} +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.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_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.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.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.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.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.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.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.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.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.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.conductor.test_utils.CacheBootModeTestCase.test_failed_boot_mode +ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_failed_boot_mode ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6172a012-bb10-4825-aca1-0f070698bbb9 +Openstack-Request-Id: req-481f6197-f812-46c5-a0ed-d941881367db X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-0a74f66d-942b-4a11-a126-c04f3e3b6b9e +Openstack-Request-Id: req-481f6197-f812-46c5-a0ed-d941881367db X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"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-0a74f66d-942b-4a11-a126-c04f3e3b6b9e +Openstack-Request-Id: req-7f08f172-80fe-4356-a66b-9defd53c74db X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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: 404 Not Found +{"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_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.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.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 +GOT:{'nodes': [{'uuid': 'c4bd65bc-4847-47bf-87d0-374d5a8fed35', 'created_at': '2025-02-07T17:33:17.610220+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/c4bd65bc-4847-47bf-87d0-374d5a8fed35', 'rel': 'self'}, {'href': 'http://localhost/nodes/c4bd65bc-4847-47bf-87d0-374d5a8fed35', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/c4bd65bc-4847-47bf-87d0-374d5a8fed35/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c4bd65bc-4847-47bf-87d0-374d5a8fed35/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/c4bd65bc-4847-47bf-87d0-374d5a8fed35/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/c4bd65bc-4847-47bf-87d0-374d5a8fed35/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/c4bd65bc-4847-47bf-87d0-374d5a8fed35/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/c4bd65bc-4847-47bf-87d0-374d5a8fed35/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/c4bd65bc-4847-47bf-87d0-374d5a8fed35/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/c4bd65bc-4847-47bf-87d0-374d5a8fed35/volume', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?lessee=project2 {} +GOT:{'nodes': [{'uuid': 'f569bef3-0d9b-4f5a-bb82-f8d1e80633d1', 'created_at': '2025-02-07T17:33:17.615450+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/f569bef3-0d9b-4f5a-bb82-f8d1e80633d1', 'rel': 'self'}, {'href': 'http://localhost/nodes/f569bef3-0d9b-4f5a-bb82-f8d1e80633d1', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/f569bef3-0d9b-4f5a-bb82-f8d1e80633d1/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/f569bef3-0d9b-4f5a-bb82-f8d1e80633d1/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/f569bef3-0d9b-4f5a-bb82-f8d1e80633d1/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/f569bef3-0d9b-4f5a-bb82-f8d1e80633d1/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/f569bef3-0d9b-4f5a-bb82-f8d1e80633d1/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/f569bef3-0d9b-4f5a-bb82-f8d1e80633d1/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/f569bef3-0d9b-4f5a-bb82-f8d1e80633d1/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/f569bef3-0d9b-4f5a-bb82-f8d1e80633d1/volume', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?lessee=project1 {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-f24448c0-f744-413a-87cd-de9a4c288584 +Openstack-Request-Id: req-3a44d2b4-3534-4d56-9982-f4c8bcd55c17 X-Openstack-Ironic-Api-Maximum-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.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-f24448c0-f744-413a-87cd-de9a4c288584 +Openstack-Request-Id: req-94d69dfa-cb8f-44f1-bc12-656c0c494664 X-Openstack-Ironic-Api-Maximum-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: 403 Forbidden +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': '859a022b-eb13-4195-b5f0-5b224b88c4c6', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/859a022b-eb13-4195-b5f0-5b224b88c4c6', 'rel': 'self'}, {'href': 'http://localhost/nodes/859a022b-eb13-4195-b5f0-5b224b88c4c6', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?owner=bob {} +GOT:{'nodes': [{'uuid': '89270ead-b547-46f9-98c8-f15b00d582f6', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/89270ead-b547-46f9-98c8-f15b00d582f6', 'rel': 'self'}, {'href': 'http://localhost/nodes/89270ead-b547-46f9-98c8-f15b00d582f6', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?owner=fred {} +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.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.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.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.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.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.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.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.TestListNodes.test_get_nodes_by_owner +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner ... 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.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.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 +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 -Openstack-Request-Id: req-1edf8ce6-bb40-487d-9846-c02ea74fb375 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-6b1fa457-d5da-41be-afbe-d3819667d28b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +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': '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-1edf8ce6-bb40-487d-9846-c02ea74fb375 +Openstack-Request-Id: req-ed995d62-b99e-42c1-aafa-18191ed819a2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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-7bfbe2e0-01db-4109-8f33-d586cc3281ad +Openstack-Request-Id: req-6d54594a-4ed1-46c6-ac91-9d0335cbf3e2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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_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.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.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.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_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.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.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.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.db.test_allocations.AllocationsTestCase.test_update_allocation_uuid -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_uuid ... 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.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.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 -GOT:Response: 200 OK +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-e99eefeb-7c2d-4555-a1fa-973f977611c3 +Openstack-Request-Id: req-8a110fdb-5ace-47c6-90d9-d42afc3e097a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.50 -{"uuid": "f8cf6716-22ea-4bf3-b1b7-b9324cb4e04b", "created_at": "2024-01-06T10:56:53.065711+00:00", "updated_at": null, "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/f8cf6716-22ea-4bf3-b1b7-b9324cb4e04b", "rel": "self"}, {"href": "http://localhost/nodes/f8cf6716-22ea-4bf3-b1b7-b9324cb4e04b", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f8cf6716-22ea-4bf3-b1b7-b9324cb4e04b/ports", "rel": "self"}, {"href": "http://localhost/nodes/f8cf6716-22ea-4bf3-b1b7-b9324cb4e04b/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f8cf6716-22ea-4bf3-b1b7-b9324cb4e04b/states", "rel": "self"}, {"href": "http://localhost/nodes/f8cf6716-22ea-4bf3-b1b7-b9324cb4e04b/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f8cf6716-22ea-4bf3-b1b7-b9324cb4e04b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f8cf6716-22ea-4bf3-b1b7-b9324cb4e04b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f8cf6716-22ea-4bf3-b1b7-b9324cb4e04b/volume", "rel": "self"}, {"href": "http://localhost/nodes/f8cf6716-22ea-4bf3-b1b7-b9324cb4e04b/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/27d2cd5c-affb-47d0-98eb-c48d4b015e39 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"} +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.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.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_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.conductor.test_utils.CacheBootModeTestCase.test_noneness +ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_noneness ... 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.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_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.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.conductor.test_manager.MiscTestCase.test__mapped_to_this_conductor +ironic.tests.unit.conductor.test_manager.MiscTestCase.test__mapped_to_this_conductor ... ok +GOT:{'ports': [{'uuid': 'f51361e6-f25e-430a-9e43-56ee191cff6f', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/f51361e6-f25e-430a-9e43-56ee191cff6f', 'rel': 'self'}, {'href': 'http://localhost/ports/f51361e6-f25e-430a-9e43-56ee191cff6f', 'rel': 'bookmark'}]}, {'uuid': 'de963b94-102e-4305-9a6c-718bbe289841', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/de963b94-102e-4305-9a6c-718bbe289841', 'rel': 'self'}, {'href': 'http://localhost/ports/de963b94-102e-4305-9a6c-718bbe289841', 'rel': 'bookmark'}]}, {'uuid': '30a62b6e-5f83-4dc8-bcde-188a41af75a7', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/30a62b6e-5f83-4dc8-bcde-188a41af75a7', 'rel': 'self'}, {'href': 'http://localhost/ports/30a62b6e-5f83-4dc8-bcde-188a41af75a7', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=30a62b6e-5f83-4dc8-bcde-188a41af75a7'} +GET: /v1/ports {} +GOT:{'ports': [{'uuid': 'ef56291f-b21d-4120-a5b9-759682696132', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/ef56291f-b21d-4120-a5b9-759682696132', 'rel': 'self'}, {'href': 'http://localhost/ports/ef56291f-b21d-4120-a5b9-759682696132', 'rel': 'bookmark'}]}, {'uuid': 'd41e20ad-968a-401e-ae72-656446d5cb48', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/d41e20ad-968a-401e-ae72-656446d5cb48', 'rel': 'self'}, {'href': 'http://localhost/ports/d41e20ad-968a-401e-ae72-656446d5cb48', 'rel': 'bookmark'}]}, {'uuid': '9ad3451b-ac6f-478a-a9a8-6976d3acf1e2', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/9ad3451b-ac6f-478a-a9a8-6976d3acf1e2', 'rel': 'self'}, {'href': 'http://localhost/ports/9ad3451b-ac6f-478a-a9a8-6976d3acf1e2', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=9ad3451b-ac6f-478a-a9a8-6976d3acf1e2'} +GET: /v1/ports/detail {} +GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T17:33:17.075226+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-e0d122e4-1a38-4c99-99a1-b92041654930 +Openstack-Request-Id: req-323515ff-d0cc-4eae-aae4-164f78bac8fd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.50 -{"uuid": "27d2cd5c-affb-47d0-98eb-c48d4b015e39", "created_at": "2024-01-06T10:56:53.173050+00:00", "updated_at": null, "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/27d2cd5c-affb-47d0-98eb-c48d4b015e39", "rel": "self"}, {"href": "http://localhost/nodes/27d2cd5c-affb-47d0-98eb-c48d4b015e39", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/27d2cd5c-affb-47d0-98eb-c48d4b015e39/ports", "rel": "self"}, {"href": "http://localhost/nodes/27d2cd5c-affb-47d0-98eb-c48d4b015e39/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/27d2cd5c-affb-47d0-98eb-c48d4b015e39/states", "rel": "self"}, {"href": "http://localhost/nodes/27d2cd5c-affb-47d0-98eb-c48d4b015e39/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/27d2cd5c-affb-47d0-98eb-c48d4b015e39/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/27d2cd5c-affb-47d0-98eb-c48d4b015e39/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/27d2cd5c-affb-47d0-98eb-c48d4b015e39/volume", "rel": "self"}, {"href": "http://localhost/nodes/27d2cd5c-affb-47d0-98eb-c48d4b015e39/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/224f6260-5e6e-48bf-85fe-91165186398f [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] -GOT:Response: 409 Conflict +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-82c0488e-381c-48b3-8ac4-8d9770421585 +Openstack-Request-Id: req-ae5d97b8-41ab-4309-8db0-23af53736162 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 \\\"224f6260-5e6e-48bf-85fe-91165186398f\\\" while it is allocated to an allocation with an owner.\", \"debuginfo\": null}"} -PATCH: /v1/nodes/194022e6-d4ff-4b18-bffd-4e2715ddd57d [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] +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': '2025-02-07T17:33:17.536172+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-07T17:33:17.658901+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': '934d68f9-9f87-4094-b0d5-ad882927f2d1', 'created_at': '2025-02-07T17:33:17.904770+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/934d68f9-9f87-4094-b0d5-ad882927f2d1', 'rel': 'self'}, {'href': 'http://localhost/ports/934d68f9-9f87-4094-b0d5-ad882927f2d1', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None}, {'uuid': '76078439-bfa1-48b1-bddd-3385d5617ab8', 'created_at': '2025-02-07T17:33:17.906437+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/76078439-bfa1-48b1-bddd-3385d5617ab8', 'rel': 'self'}, {'href': 'http://localhost/ports/76078439-bfa1-48b1-bddd-3385d5617ab8', '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-017fd772-379b-45c6-b684-aa207355c29e +Openstack-Request-Id: req-c7f17873-d00b-4b84-9d70-36698a716793 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.47 +X-Openstack-Ironic-Api-Version: 1.18 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PATCH: /v1/nodes/459e5387-2c44-461f-89e2-128d5420a394 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] -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_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.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.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.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.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.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.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.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.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.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.common.test_images.FsImageTestCase.test__create_root_fs -ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs ... 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.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.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.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_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.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.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.common.test_images.FsImageTestCase.test__generate_grub_cfg -ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_grub_cfg ... 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.conductor.test_manager.RaidTestCases.test_set_target_raid_config -ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config ... ok -GOT:{'nodes': [{'uuid': '37eb8ced-3ab4-4b75-89a3-4f40118609d2', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/37eb8ced-3ab4-4b75-89a3-4f40118609d2', 'rel': 'self'}, {'href': 'http://localhost/nodes/37eb8ced-3ab4-4b75-89a3-4f40118609d2', 'rel': 'bookmark'}]}, {'uuid': '564f6d06-562a-48a7-b87a-ee855855d820', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/564f6d06-562a-48a7-b87a-ee855855d820', 'rel': 'self'}, {'href': 'http://localhost/nodes/564f6d06-562a-48a7-b87a-ee855855d820', 'rel': 'bookmark'}]}, {'uuid': '8eba6833-7a7a-4323-b482-2adee3d4b91b', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/8eba6833-7a7a-4323-b482-2adee3d4b91b', 'rel': 'self'}, {'href': 'http://localhost/nodes/8eba6833-7a7a-4323-b482-2adee3d4b91b', 'rel': 'bookmark'}]}, {'uuid': '33c9dadd-1fb4-446d-a857-8dec5ec77791', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/33c9dadd-1fb4-446d-a857-8dec5ec77791', 'rel': 'self'}, {'href': 'http://localhost/nodes/33c9dadd-1fb4-446d-a857-8dec5ec77791', 'rel': 'bookmark'}]}, {'uuid': '6eef9f7d-c757-48d6-9215-28a463dc30fe', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/6eef9f7d-c757-48d6-9215-28a463dc30fe', 'rel': 'self'}, {'href': 'http://localhost/nodes/6eef9f7d-c757-48d6-9215-28a463dc30fe', 'rel': 'bookmark'}]}]} -GET: /v1/nodes {} -GOT:Response: 403 Forbidden +GET: /v1/ports?detail=True&fields=name {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-678c77f3-116b-4f5c-8348-2f06f18eaa1e +Openstack-Request-Id: req-6b326c1e-0d6e-40a7-86c2-f47a94c91121 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': '7175d6ca-8d54-4209-be7a-6837b82ab826', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-0', 'links': [{'href': 'http://localhost/v1/nodes/7175d6ca-8d54-4209-be7a-6837b82ab826', 'rel': 'self'}, {'href': 'http://localhost/nodes/7175d6ca-8d54-4209-be7a-6837b82ab826', 'rel': 'bookmark'}]}, {'uuid': '1bfa0d3c-337e-42a9-900e-d48114076964', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-1', 'links': [{'href': 'http://localhost/v1/nodes/1bfa0d3c-337e-42a9-900e-d48114076964', 'rel': 'self'}, {'href': 'http://localhost/nodes/1bfa0d3c-337e-42a9-900e-d48114076964', 'rel': 'bookmark'}]}, {'uuid': '7b6d21c2-3628-4853-b4b4-9cf5e3779e7b', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-2', 'links': [{'href': 'http://localhost/v1/nodes/7b6d21c2-3628-4853-b4b4-9cf5e3779e7b', 'rel': 'self'}, {'href': 'http://localhost/nodes/7b6d21c2-3628-4853-b4b4-9cf5e3779e7b', 'rel': 'bookmark'}]}, {'uuid': '5ca2cc71-62fb-4d26-8b31-9fb9b1a1dda7', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-3', 'links': [{'href': 'http://localhost/v1/nodes/5ca2cc71-62fb-4d26-8b31-9fb9b1a1dda7', 'rel': 'self'}, {'href': 'http://localhost/nodes/5ca2cc71-62fb-4d26-8b31-9fb9b1a1dda7', 'rel': 'bookmark'}]}, {'uuid': 'fc71f620-2df3-477a-a4ea-2bc402dad30e', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-4', 'links': [{'href': 'http://localhost/v1/nodes/fc71f620-2df3-477a-a4ea-2bc402dad30e', 'rel': 'self'}, {'href': 'http://localhost/nodes/fc71f620-2df3-477a-a4ea-2bc402dad30e', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?project=54321 {} -GOT:Response: 403 Forbidden +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 {} +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.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.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_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_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.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_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.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.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_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.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.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_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.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.conductor.test_manager.MiscTestCase.test_iter_nodes +ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes ... ok +ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_unsupported +ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_unsupported ... 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_port.TestListPorts.test_empty +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty ... 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.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.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success ... 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.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.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.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports ... 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.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown +ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown ... 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.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.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault ... 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 +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-a927bf74-f5ad-49cf-9e25-6446ba8f2d26 +Openstack-Request-Id: req-3b0594e1-0b12-4f5e-856e-8ba4ed89f663 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': '888d8b22-fd33-4e86-8992-d8cb31ffce31', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/888d8b22-fd33-4e86-8992-d8cb31ffce31', 'rel': 'self'}, {'href': 'http://localhost/nodes/888d8b22-fd33-4e86-8992-d8cb31ffce31', 'rel': 'bookmark'}]}, {'uuid': 'ef6136ae-afad-430b-8269-77fc4ef1e3de', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/ef6136ae-afad-430b-8269-77fc4ef1e3de', 'rel': 'self'}, {'href': 'http://localhost/nodes/ef6136ae-afad-430b-8269-77fc4ef1e3de', 'rel': 'bookmark'}]}, {'uuid': '9c0119d2-fce1-43b2-909f-f5032ecf57d0', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/9c0119d2-fce1-43b2-909f-f5032ecf57d0', 'rel': 'self'}, {'href': 'http://localhost/nodes/9c0119d2-fce1-43b2-909f-f5032ecf57d0', 'rel': 'bookmark'}]}, {'uuid': 'b50d3dfe-c62e-4125-83e6-6215a400791f', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/b50d3dfe-c62e-4125-83e6-6215a400791f', 'rel': 'self'}, {'href': 'http://localhost/nodes/b50d3dfe-c62e-4125-83e6-6215a400791f', 'rel': 'bookmark'}]}, {'uuid': '45f1e26e-2d9e-4092-93d7-6d697e303192', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/45f1e26e-2d9e-4092-93d7-6d697e303192', 'rel': 'self'}, {'href': 'http://localhost/nodes/45f1e26e-2d9e-4092-93d7-6d697e303192', 'rel': 'bookmark'}]}, {'uuid': 'b3cc402d-e642-4c2b-8bbe-71cb49a3bc5a', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/b3cc402d-e642-4c2b-8bbe-71cb49a3bc5a', 'rel': 'self'}, {'href': 'http://localhost/nodes/b3cc402d-e642-4c2b-8bbe-71cb49a3bc5a', 'rel': 'bookmark'}]}]} -GET: /v1/nodes {} -GOT:Response: 403 Forbidden +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-e8fc64f1-99f9-4e39-951e-5a1f8eb108eb +Openstack-Request-Id: req-60a0072b-b85e-4dd9-9740-b2b43d3380d5 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': '2024-01-06T10:56:53.836825+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.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 +Content-Type: application/json +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-103ca47d-bfb1-47d9-9603-43943a2e4ea4 +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-07T17:33:18.660608+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.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_manager.MiscTestCase.test_validate_dynamic_driver_interfaces -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_dynamic_driver_interfaces ... 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_mask_available_state -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state ... 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.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_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.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_node.TestPatch.test_update_protected -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected ... 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.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.conductor.test_utils.MiscTestCase.test_exclude_current_conductor -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_exclude_current_conductor ... 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.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.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_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_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.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup ... 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.TestPatch.test_update_protected_old_api -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_old_api ... 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_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 -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_manager.NodeInspectHardware.test__check_inspect_wait_timeouts -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test__check_inspect_wait_timeouts ... 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.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.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.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.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.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.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.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_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.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_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.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.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.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_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.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.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.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.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_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_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug ... 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.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d181215e-d039-4642-9b2b-1795676e44b7 +Openstack-Request-Id: req-fe27ec29-a149-4e49-8f3d-1def6fd4a027 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.50 -{"uuid": "459e5387-2c44-461f-89e2-128d5420a394", "created_at": "2024-01-06T10:56:53.723241+00:00", "updated_at": null, "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/459e5387-2c44-461f-89e2-128d5420a394", "rel": "self"}, {"href": "http://localhost/nodes/459e5387-2c44-461f-89e2-128d5420a394", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/459e5387-2c44-461f-89e2-128d5420a394/ports", "rel": "self"}, {"href": "http://localhost/nodes/459e5387-2c44-461f-89e2-128d5420a394/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/459e5387-2c44-461f-89e2-128d5420a394/states", "rel": "self"}, {"href": "http://localhost/nodes/459e5387-2c44-461f-89e2-128d5420a394/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/459e5387-2c44-461f-89e2-128d5420a394/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/459e5387-2c44-461f-89e2-128d5420a394/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/459e5387-2c44-461f-89e2-128d5420a394/volume", "rel": "self"}, {"href": "http://localhost/nodes/459e5387-2c44-461f-89e2-128d5420a394/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/57243b8f-025a-4807-8da0-3774f720c085 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] -GOT:Response: 409 Conflict +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": "0db5036d-a062-40f1-b32d-38eefc015e68", "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-66e6514a-6492-42eb-bbf1-601c1925e8cf +Openstack-Request-Id: req-fe27ec29-a149-4e49-8f3d-1def6fd4a027 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 \\\"57243b8f-025a-4807-8da0-3774f720c085\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"} -PATCH: /v1/nodes/a7cb7269-3160-414f-823c-5a32c60cef9e [{'path': '/protected', 'value': True, 'op': 'replace'}] +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": "0db5036d-a062-40f1-b32d-38eefc015e68", "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-3b1ccb74-eee6-418c-8826-b9013090a662 +Openstack-Request-Id: req-56a7b756-592c-45ab-9449-a6197b912d3f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.48 -{"uuid": "a7cb7269-3160-414f-823c-5a32c60cef9e", "created_at": "2024-01-06T10:56:54.088243+00:00", "updated_at": null, "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/a7cb7269-3160-414f-823c-5a32c60cef9e", "rel": "self"}, {"href": "http://localhost/nodes/a7cb7269-3160-414f-823c-5a32c60cef9e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a7cb7269-3160-414f-823c-5a32c60cef9e/ports", "rel": "self"}, {"href": "http://localhost/nodes/a7cb7269-3160-414f-823c-5a32c60cef9e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a7cb7269-3160-414f-823c-5a32c60cef9e/states", "rel": "self"}, {"href": "http://localhost/nodes/a7cb7269-3160-414f-823c-5a32c60cef9e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a7cb7269-3160-414f-823c-5a32c60cef9e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a7cb7269-3160-414f-823c-5a32c60cef9e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a7cb7269-3160-414f-823c-5a32c60cef9e/volume", "rel": "self"}, {"href": "http://localhost/nodes/a7cb7269-3160-414f-823c-5a32c60cef9e/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/8b0bef9f-e496-4482-a019-75217e3c5fa6 [{'path': '/protected', 'value': True, 'op': 'replace'}] -GOT:Response: 406 Not Acceptable +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": "0c75f634-b1a3-4a81-8e7c-435816a5d4ee", "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-f784205b-d867-4935-a410-8fc6931fffb3 +Openstack-Request-Id: req-56a7b756-592c-45ab-9449-a6197b912d3f 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/fa2ab45e-b1e5-4624-b9f5-c1cfaeb8e6b5 [{'path': '/protected_reason', 'value': 'reason!', 'op': 'replace'}] -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.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_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.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_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_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.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_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_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.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.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 -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:53.836825+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': '04fb910f-1b6d-4b1e-9f5d-7080a8689b8b', 'instance_uuid': 'fe5fe357-ca61-4d68-8fd2-6093d7d357c4', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/04fb910f-1b6d-4b1e-9f5d-7080a8689b8b', 'rel': 'self'}, {'href': 'http://localhost/nodes/04fb910f-1b6d-4b1e-9f5d-7080a8689b8b', 'rel': 'bookmark'}]}, {'uuid': 'fd624ce4-e22d-404f-8c8b-381f87aef28a', 'instance_uuid': 'a2c3dd34-9c58-4ba6-bb60-2e9bb83fae48', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/fd624ce4-e22d-404f-8c8b-381f87aef28a', 'rel': 'self'}, {'href': 'http://localhost/nodes/fd624ce4-e22d-404f-8c8b-381f87aef28a', 'rel': 'bookmark'}]}, {'uuid': 'e2c8e887-780a-48b1-8967-1a6d48c7bdc1', 'instance_uuid': '49be03cd-8a72-4feb-acab-47b862b5f87d', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/e2c8e887-780a-48b1-8967-1a6d48c7bdc1', 'rel': 'self'}, {'href': 'http://localhost/nodes/e2c8e887-780a-48b1-8967-1a6d48c7bdc1', '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=e2c8e887-780a-48b1-8967-1a6d48c7bdc1'} -GET: /v1/nodes/detail?limit=3&associated=true {} -GOT:{'nodes': [{'uuid': '05435bb7-e195-4bd6-a861-5ae4702597b3', 'created_at': '2024-01-06T10:56:54.335020+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': '0f87cb7d-8376-40c2-b1b9-e14790ecccef', '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/05435bb7-e195-4bd6-a861-5ae4702597b3', 'rel': 'self'}, {'href': 'http://localhost/nodes/05435bb7-e195-4bd6-a861-5ae4702597b3', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/05435bb7-e195-4bd6-a861-5ae4702597b3/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/05435bb7-e195-4bd6-a861-5ae4702597b3/ports', 'rel': 'bookmark'}]}, {'uuid': 'a6ad32f3-ae30-48b6-9efd-589689c27da6', 'created_at': '2024-01-06T10:56:54.339861+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': '64abe92f-0f7f-4e43-99fc-9f38458d6263', '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/a6ad32f3-ae30-48b6-9efd-589689c27da6', 'rel': 'self'}, {'href': 'http://localhost/nodes/a6ad32f3-ae30-48b6-9efd-589689c27da6', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/a6ad32f3-ae30-48b6-9efd-589689c27da6/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a6ad32f3-ae30-48b6-9efd-589689c27da6/ports', 'rel': 'bookmark'}]}, {'uuid': '17f46aaa-f4da-4133-9283-f28c1390176b', 'created_at': '2024-01-06T10:56:54.345280+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': '75c70363-f0ac-489d-b3b1-b7c85a98cd95', '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/17f46aaa-f4da-4133-9283-f28c1390176b', 'rel': 'self'}, {'href': 'http://localhost/nodes/17f46aaa-f4da-4133-9283-f28c1390176b', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/17f46aaa-f4da-4133-9283-f28c1390176b/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/17f46aaa-f4da-4133-9283-f28c1390176b/ports', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes/detail?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=17f46aaa-f4da-4133-9283-f28c1390176b'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -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.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_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.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.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_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.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.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_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.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_node.TestPatch.test_update_protected_remove -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_remove ... 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_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.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.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.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_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.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.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.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.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_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.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.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.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_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry ... 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_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid ... 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.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_ok -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_ok ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:54.435737+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-06T10:56:54.526638+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-06T10:56:54.526638+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.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.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.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_node.TestPatch.test_update_protected_string -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string ... 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.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_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.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_task_manager.TaskManagerTestCase.test_excl_lock -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock ... 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 +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": "0c75f634-b1a3-4a81-8e7c-435816a5d4ee", "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-ac24380b-e077-47ac-8871-013401d4b5b3 +Openstack-Request-Id: req-455eca4b-2fe7-4362-a3fa-5a8d4aea9b2d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.48 -{"uuid": "fa2ab45e-b1e5-4624-b9f5-c1cfaeb8e6b5", "created_at": "2024-01-06T10:56:54.339920+00:00", "updated_at": null, "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/fa2ab45e-b1e5-4624-b9f5-c1cfaeb8e6b5", "rel": "self"}, {"href": "http://localhost/nodes/fa2ab45e-b1e5-4624-b9f5-c1cfaeb8e6b5", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fa2ab45e-b1e5-4624-b9f5-c1cfaeb8e6b5/ports", "rel": "self"}, {"href": "http://localhost/nodes/fa2ab45e-b1e5-4624-b9f5-c1cfaeb8e6b5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fa2ab45e-b1e5-4624-b9f5-c1cfaeb8e6b5/states", "rel": "self"}, {"href": "http://localhost/nodes/fa2ab45e-b1e5-4624-b9f5-c1cfaeb8e6b5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fa2ab45e-b1e5-4624-b9f5-c1cfaeb8e6b5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fa2ab45e-b1e5-4624-b9f5-c1cfaeb8e6b5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fa2ab45e-b1e5-4624-b9f5-c1cfaeb8e6b5/volume", "rel": "self"}, {"href": "http://localhost/nodes/fa2ab45e-b1e5-4624-b9f5-c1cfaeb8e6b5/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/784e62cf-ad2b-4d74-a912-5ea73e35a804 [{'op': 'remove', 'path': '/protected'}] +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": "7ee4e9c2-c64f-4ceb-bd25-494c8e927695", "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-455eca4b-2fe7-4362-a3fa-5a8d4aea9b2d +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": "7ee4e9c2-c64f-4ceb-bd25-494c8e927695", "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-bd2862c0-7aaf-448d-b816-5be03c8e9f65 +Openstack-Request-Id: req-dcbaf55b-f879-439e-bbce-4e0444265a57 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.48 -{"uuid": "784e62cf-ad2b-4d74-a912-5ea73e35a804", "created_at": "2024-01-06T10:56:54.457167+00:00", "updated_at": null, "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/784e62cf-ad2b-4d74-a912-5ea73e35a804", "rel": "self"}, {"href": "http://localhost/nodes/784e62cf-ad2b-4d74-a912-5ea73e35a804", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/784e62cf-ad2b-4d74-a912-5ea73e35a804/ports", "rel": "self"}, {"href": "http://localhost/nodes/784e62cf-ad2b-4d74-a912-5ea73e35a804/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/784e62cf-ad2b-4d74-a912-5ea73e35a804/states", "rel": "self"}, {"href": "http://localhost/nodes/784e62cf-ad2b-4d74-a912-5ea73e35a804/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/784e62cf-ad2b-4d74-a912-5ea73e35a804/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/784e62cf-ad2b-4d74-a912-5ea73e35a804/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/784e62cf-ad2b-4d74-a912-5ea73e35a804/volume", "rel": "self"}, {"href": "http://localhost/nodes/784e62cf-ad2b-4d74-a912-5ea73e35a804/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/8228daff-da03-4bb1-b29b-d9a63914c7fb [{'path': '/protected', 'value': 'True', 'op': 'replace'}] +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": "b94d4393-009f-4df7-9030-edc6e6274759", "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-dcbaf55b-f879-439e-bbce-4e0444265a57 +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": "b94d4393-009f-4df7-9030-edc6e6274759", "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.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_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_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 +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-7f08f172-80fe-4356-a66b-9defd53c74db +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 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-330fe39b-f4dc-4c41-a165-3c0c24d810d7 +Openstack-Request-Id: req-10128084-bace-47c7-8821-0a78dfc33826 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.48 -{"uuid": "8228daff-da03-4bb1-b29b-d9a63914c7fb", "created_at": "2024-01-06T10:56:54.572524+00:00", "updated_at": null, "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/8228daff-da03-4bb1-b29b-d9a63914c7fb", "rel": "self"}, {"href": "http://localhost/nodes/8228daff-da03-4bb1-b29b-d9a63914c7fb", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8228daff-da03-4bb1-b29b-d9a63914c7fb/ports", "rel": "self"}, {"href": "http://localhost/nodes/8228daff-da03-4bb1-b29b-d9a63914c7fb/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8228daff-da03-4bb1-b29b-d9a63914c7fb/states", "rel": "self"}, {"href": "http://localhost/nodes/8228daff-da03-4bb1-b29b-d9a63914c7fb/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8228daff-da03-4bb1-b29b-d9a63914c7fb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8228daff-da03-4bb1-b29b-d9a63914c7fb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8228daff-da03-4bb1-b29b-d9a63914c7fb/volume", "rel": "self"}, {"href": "http://localhost/nodes/8228daff-da03-4bb1-b29b-d9a63914c7fb/volume", "rel": "bookmark"}]} -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.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.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.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_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_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.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_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.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.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_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.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.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.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_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_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.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.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_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.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.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.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_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_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:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:54.669160+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-06T10:56:55.421517+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-06T10:56:56.307702+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.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.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_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.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_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.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.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.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.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.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.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.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.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_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.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.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.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.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_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_manager.NodeInspectHardware.test_inspect_hardware_return_inspecting -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspecting ... 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.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.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.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_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_node.TestListNodes.test_node_boot_mode -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode ... 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_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.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_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.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.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_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.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.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.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.db.test_api.GetNotVersionsTestCase.test_get_not_versions -ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions ... 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 -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:56.307702+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/52eb1f46-cc86-4d09-a0eb-839d80483533 {} -GOT:{'uuid': '52eb1f46-cc86-4d09-a0eb-839d80483533', 'created_at': '2024-01-06T10:56:56.999662+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/52eb1f46-cc86-4d09-a0eb-839d80483533', 'rel': 'self'}, {'href': 'http://localhost/nodes/52eb1f46-cc86-4d09-a0eb-839d80483533', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/52eb1f46-cc86-4d09-a0eb-839d80483533/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/52eb1f46-cc86-4d09-a0eb-839d80483533/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/52eb1f46-cc86-4d09-a0eb-839d80483533/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/52eb1f46-cc86-4d09-a0eb-839d80483533/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/52eb1f46-cc86-4d09-a0eb-839d80483533/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/52eb1f46-cc86-4d09-a0eb-839d80483533/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/52eb1f46-cc86-4d09-a0eb-839d80483533/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/52eb1f46-cc86-4d09-a0eb-839d80483533/volume', 'rel': 'bookmark'}]} -GET: /v1/nodes/59812f3b-b9d3-4603-aed8-a7d0493ff8cf {} -GOT:{'uuid': '59812f3b-b9d3-4603-aed8-a7d0493ff8cf', 'created_at': '2024-01-06T10:56:57.276451+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/59812f3b-b9d3-4603-aed8-a7d0493ff8cf', 'rel': 'self'}, {'href': 'http://localhost/nodes/59812f3b-b9d3-4603-aed8-a7d0493ff8cf', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/59812f3b-b9d3-4603-aed8-a7d0493ff8cf/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/59812f3b-b9d3-4603-aed8-a7d0493ff8cf/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/59812f3b-b9d3-4603-aed8-a7d0493ff8cf/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/59812f3b-b9d3-4603-aed8-a7d0493ff8cf/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/59812f3b-b9d3-4603-aed8-a7d0493ff8cf/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/59812f3b-b9d3-4603-aed8-a7d0493ff8cf/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/59812f3b-b9d3-4603-aed8-a7d0493ff8cf/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/59812f3b-b9d3-4603-aed8-a7d0493ff8cf/volume', 'rel': 'bookmark'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -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.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.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.common.test_images.FsImageTestCase.test_create_vfat_image -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image ... 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.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.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.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_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.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted ... ok +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-10128084-bace-47c7-8821-0a78dfc33826 +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\": \"\"}"} +GET: / {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-38e1fc74-1436-44c8-871e-292f18ac7de1 +{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} +GET: / {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-d7247b6a-5581-41a0-bc14-18a7a3c06f00 +{"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} +GET: / {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-062ac5c0-5974-4bb2-ba52-7d10691097d2 +{"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} +GET: / {} +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.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.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.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.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.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 ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7bfbe2e0-01db-4109-8f33-d586cc3281ad +Openstack-Request-Id: req-9137cff4-ae3b-4f50-96a5-1aa319c40ccc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -18120,14 +16890,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-9a1767a7-a36b-4adc-a6f1-fb7e0c2fee3d +Openstack-Request-Id: req-9adde1d4-2a1a-433b-9da5-5e5d02c370e1 X-Openstack-Ironic-Api-Maximum-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-9a1767a7-a36b-4adc-a6f1-fb7e0c2fee3d +Openstack-Request-Id: req-9adde1d4-2a1a-433b-9da5-5e5d02c370e1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -18136,14 +16906,14 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f185aeea-cb68-41da-a5d0-b0f4cdeb72b9 +Openstack-Request-Id: req-1d516b82-d3b1-4964-a3ef-03e4ff556f51 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-f185aeea-cb68-41da-a5d0-b0f4cdeb72b9 +Openstack-Request-Id: req-1d516b82-d3b1-4964-a3ef-03e4ff556f51 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -18152,14 +16922,14 @@ 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-9fc36418-eada-47d2-9336-e7a26d266e11 +Openstack-Request-Id: req-ab7a6dab-4af9-4118-9459-27f0447d9b86 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-9fc36418-eada-47d2-9336-e7a26d266e11 +Openstack-Request-Id: req-ab7a6dab-4af9-4118-9459-27f0447d9b86 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -18168,14 +16938,14 @@ 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-dcf41d19-c6ae-47e1-8710-edd59801d1cb +Openstack-Request-Id: req-897fec78-5831-4c72-ac7b-bac9b93add35 X-Openstack-Ironic-Api-Maximum-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-dcf41d19-c6ae-47e1-8710-edd59801d1cb +Openstack-Request-Id: req-897fec78-5831-4c72-ac7b-bac9b93add35 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -18184,14 +16954,14 @@ 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-501f4b60-f8d6-45e4-b560-4a4e1fb8df70 +Openstack-Request-Id: req-e37fee5d-58e9-4f93-a126-39c67b01483d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-501f4b60-f8d6-45e4-b560-4a4e1fb8df70 +Openstack-Request-Id: req-e37fee5d-58e9-4f93-a126-39c67b01483d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -18200,14 +16970,14 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-60a96314-d84d-4f14-b214-ac4b0b967335 +Openstack-Request-Id: req-6b79dbc3-fb6e-4a48-b26e-dea6e94cb4f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-60a96314-d84d-4f14-b214-ac4b0b967335 +Openstack-Request-Id: req-6b79dbc3-fb6e-4a48-b26e-dea6e94cb4f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -18216,14 +16986,14 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5d1a1653-114b-4862-9e57-185ff4163859 +Openstack-Request-Id: req-412cc06c-b7b7-471d-976e-04e5d630bd20 X-Openstack-Ironic-Api-Maximum-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-5d1a1653-114b-4862-9e57-185ff4163859 +Openstack-Request-Id: req-412cc06c-b7b7-471d-976e-04e5d630bd20 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -18232,6961 +17002,4359 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ef74023d-c0f5-479a-89a1-855f64e8cecb +Openstack-Request-Id: req-f9108c2f-2d4b-4f47-8504-46a417275542 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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.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.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.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.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_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.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.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_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_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.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.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.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_manager.NodeInspectHardware.test_inspect_hardware_unexpected_error -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_unexpected_error ... 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.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.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.common.test_release_mappings.ReleaseMappingsTestCase.test_structure -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_structure ... 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_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.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.db.test_portgroups.DbportgroupTestCase.test_update_portgroup -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup ... 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_states.StatesTest.test_state_values_length -ironic.tests.unit.common.test_states.StatesTest.test_state_values_length ... 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.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_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_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.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector ... ok -PATCH: /v1/nodes/d3df7bcb-3cff-4f99-81a4-c1025602d17d [{'path': '/protected', 'value': 'YeahNahGood', 'op': 'replace'}] -GOT:Response: 400 Bad Request +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.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_down +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_down ... 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_image_service.HttpImageServiceTestCase.test_show_ansi_c +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c ... 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.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.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_utils.GetAttachedVifTestCase.test_get_attached_vif_tenant +ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_tenant ... ok +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-057c5db0-26ae-4646-9d71-26d04d97ffc7 +Openstack-Request-Id: req-964fdf8c-7698-4c56-a989-73f3527ebaea 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/8649f28d-3b36-4a3c-9aee-f670267e26e9 [{'path': '/protected', 'value': True, 'op': 'replace'}, {'path': '/protected_reason', 'value': 'reason!', 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-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-b05b4cb2-33be-48b2-8d83-1760cff40d6d +Openstack-Request-Id: req-964fdf8c-7698-4c56-a989-73f3527ebaea X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.48 -{"uuid": "8649f28d-3b36-4a3c-9aee-f670267e26e9", "created_at": "2024-01-06T10:56:56.194072+00:00", "updated_at": null, "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/8649f28d-3b36-4a3c-9aee-f670267e26e9", "rel": "self"}, {"href": "http://localhost/nodes/8649f28d-3b36-4a3c-9aee-f670267e26e9", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8649f28d-3b36-4a3c-9aee-f670267e26e9/ports", "rel": "self"}, {"href": "http://localhost/nodes/8649f28d-3b36-4a3c-9aee-f670267e26e9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8649f28d-3b36-4a3c-9aee-f670267e26e9/states", "rel": "self"}, {"href": "http://localhost/nodes/8649f28d-3b36-4a3c-9aee-f670267e26e9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8649f28d-3b36-4a3c-9aee-f670267e26e9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8649f28d-3b36-4a3c-9aee-f670267e26e9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8649f28d-3b36-4a3c-9aee-f670267e26e9/volume", "rel": "self"}, {"href": "http://localhost/nodes/8649f28d-3b36-4a3c-9aee-f670267e26e9/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/b7329a8f-8f5a-4044-8f56-250d433031c9 [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] -GOT:Response: 200 OK +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 Content-Type: application/json -Openstack-Request-Id: req-2dbea494-b073-45e8-869a-f2d154522c26 +Openstack-Request-Id: req-ad33bea3-0d7d-40d0-b918-4d07f7e77803 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.21 -{"uuid": "b7329a8f-8f5a-4044-8f56-250d433031c9", "created_at": "2024-01-06T10:56:56.980839+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/b7329a8f-8f5a-4044-8f56-250d433031c9", "rel": "self"}, {"href": "http://localhost/nodes/b7329a8f-8f5a-4044-8f56-250d433031c9", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b7329a8f-8f5a-4044-8f56-250d433031c9/ports", "rel": "self"}, {"href": "http://localhost/nodes/b7329a8f-8f5a-4044-8f56-250d433031c9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b7329a8f-8f5a-4044-8f56-250d433031c9/states", "rel": "self"}, {"href": "http://localhost/nodes/b7329a8f-8f5a-4044-8f56-250d433031c9/states", "rel": "bookmark"}]} -PATCH: /v1/nodes/290f70fe-ba9b-434c-a85c-332ddc5a70be [{'path': '/resource_class', 'value': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-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-c9e0dbf1-23da-4880-a2cf-b9a5e5600f1a +Openstack-Request-Id: req-ad33bea3-0d7d-40d0-b918-4d07f7e77803 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.21 -{"uuid": "290f70fe-ba9b-434c-a85c-332ddc5a70be", "created_at": "2024-01-06T10:56:57.901628+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/290f70fe-ba9b-434c-a85c-332ddc5a70be", "rel": "self"}, {"href": "http://localhost/nodes/290f70fe-ba9b-434c-a85c-332ddc5a70be", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/290f70fe-ba9b-434c-a85c-332ddc5a70be/ports", "rel": "self"}, {"href": "http://localhost/nodes/290f70fe-ba9b-434c-a85c-332ddc5a70be/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/290f70fe-ba9b-434c-a85c-332ddc5a70be/states", "rel": "self"}, {"href": "http://localhost/nodes/290f70fe-ba9b-434c-a85c-332ddc5a70be/states", "rel": "bookmark"}]} -PATCH: /v1/nodes/49d69bd7-b541-4d5c-8a99-44e280712a57 [{'path': '/resource_class', 'value': 'foo', '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 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-464cbe8a-097d-4a4d-a535-63e76242cfe6 +Openstack-Request-Id: req-006a0ce7-5203-441f-b9d3-125a34e21ecb 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/f7a96ce2-4558-4178-90b8-c3f4a43221d1 [{'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 -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 -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:57.943676+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-06T10:56:57.943676+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-06T10:56:58.246117+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=cdff1d2a-2c79-4967-9c32-06c05e898c58 {} -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_task_manager.TaskManagerTestCase.test_no_driver -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_no_driver ... 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_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.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.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.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.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_task_manager.TaskManagerTestCase.test_shared_lock -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock ... 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_rpc_service.TestRPCService.test_start -ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start ... 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.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.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.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.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.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.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.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.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.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.common.test_rpc_service.TestRPCService.test_start_failure -ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start_failure ... 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.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.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.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.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_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_default_ipxe_boot_from_ramdisk -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_ramdisk ... 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_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_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail -ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail ... 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.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.dhcp.test_factory.TestDHCPFactory.test_default_dhcp -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_default_dhcp ... 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.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.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.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_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_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.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.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.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.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_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.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp ... 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.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.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.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_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_factory.TestDHCPFactory.test_set_bad_dhcp -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_bad_dhcp ... 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.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_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 -GOT:{'nodes': [{'uuid': '1b881785-1897-4c43-aeed-6dadbf7d49ae', 'instance_uuid': 'cdff1d2a-2c79-4967-9c32-06c05e898c58', 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/1b881785-1897-4c43-aeed-6dadbf7d49ae', 'rel': 'self'}, {'href': 'http://localhost/nodes/1b881785-1897-4c43-aeed-6dadbf7d49ae', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?instance_uuid=fake {} -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}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-14df9e5e-7ee9-440a-9ba2-108c51104993 +Openstack-Request-Id: req-006a0ce7-5203-441f-b9d3-125a34e21ecb 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=bf7a83a7-9f7f-44ee-b4ce-e67aa52dacbb {} -GOT:{'nodes': []} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:58.532859+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-06T10:56:58.532859+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-06T10:56:58.611075+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_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.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.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.dhcp.test_factory.TestDHCPFactory.test_set_neutron_dhcp -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_neutron_dhcp ... 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.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.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.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_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.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp ... 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.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.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.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after ... 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.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.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.UpdateNodeTestCase.test_update_node_already_locked -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked ... 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.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_850 -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_850 ... ok -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-d10a8c96-f632-47c2-9eeb-4235d25c33d4 +Openstack-Request-Id: req-948a1ddd-3507-4e14-a9d2-85fdfbb5d665 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/463b9f47-980b-424e-b4ba-7554793202a1 [{'path': '/retired', 'value': True, 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-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-c6963471-b63d-4993-a20a-ee3ea14632c9 +Openstack-Request-Id: req-948a1ddd-3507-4e14-a9d2-85fdfbb5d665 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.61 -{"uuid": "463b9f47-980b-424e-b4ba-7554793202a1", "created_at": "2024-01-06T10:56:58.424771+00:00", "updated_at": null, "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/463b9f47-980b-424e-b4ba-7554793202a1", "rel": "self"}, {"href": "http://localhost/nodes/463b9f47-980b-424e-b4ba-7554793202a1", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/463b9f47-980b-424e-b4ba-7554793202a1/ports", "rel": "self"}, {"href": "http://localhost/nodes/463b9f47-980b-424e-b4ba-7554793202a1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/463b9f47-980b-424e-b4ba-7554793202a1/states", "rel": "self"}, {"href": "http://localhost/nodes/463b9f47-980b-424e-b4ba-7554793202a1/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/463b9f47-980b-424e-b4ba-7554793202a1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/463b9f47-980b-424e-b4ba-7554793202a1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/463b9f47-980b-424e-b4ba-7554793202a1/volume", "rel": "self"}, {"href": "http://localhost/nodes/463b9f47-980b-424e-b4ba-7554793202a1/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/7a0368ce-9567-4b40-8902-3c4a183179e6 [{'path': '/retired', 'value': True, '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 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-293b892b-6960-471d-8e33-7d74ed8eb141 +Openstack-Request-Id: req-4d77ac72-7105-4dce-8710-da308fd7e140 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/25b8700c-f41d-4788-85de-00042306db53 [{'path': '/retired_reason', 'value': 'a better reason', 'op': 'replace'}] -GOT:Response: 200 OK +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-af29bca2-86df-4aef-86bd-f6edc6f513a4 +Openstack-Request-Id: req-4d77ac72-7105-4dce-8710-da308fd7e140 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.61 -{"uuid": "25b8700c-f41d-4788-85de-00042306db53", "created_at": "2024-01-06T10:56:58.593197+00:00", "updated_at": null, "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/25b8700c-f41d-4788-85de-00042306db53", "rel": "self"}, {"href": "http://localhost/nodes/25b8700c-f41d-4788-85de-00042306db53", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/25b8700c-f41d-4788-85de-00042306db53/ports", "rel": "self"}, {"href": "http://localhost/nodes/25b8700c-f41d-4788-85de-00042306db53/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/25b8700c-f41d-4788-85de-00042306db53/states", "rel": "self"}, {"href": "http://localhost/nodes/25b8700c-f41d-4788-85de-00042306db53/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/25b8700c-f41d-4788-85de-00042306db53/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/25b8700c-f41d-4788-85de-00042306db53/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/25b8700c-f41d-4788-85de-00042306db53/volume", "rel": "self"}, {"href": "http://localhost/nodes/25b8700c-f41d-4788-85de-00042306db53/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/3a8509de-a044-40ed-9e93-1b1be7ee1896 [{'op': 'remove', 'path': '/retired'}] -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.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.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.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_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.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.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.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_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_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 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:58.611075+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-06T10:56:58.692744+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-06T10:56:58.692744+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.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.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.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.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.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.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_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.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.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.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_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.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.StartConsolesTestCase.test__start_consoles_failed -ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed ... 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.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.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.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.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.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.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.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.controllers.v1.test_node.TestPatch.test_update_state -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_state ... 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.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.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.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.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.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 -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:58.767892+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-06T10:56:58.831148+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-06T10:56:58.831148+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.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_task_manager.TaskManagerTestCase.test_upgrade_lock -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock ... 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.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.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.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.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__parse_ansible_driver_info_defaults -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_defaults ... 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.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.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.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.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_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.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 -GOT:Response: 200 OK +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-25d8b928-262e-4c76-ba86-c38e7ceb0a58 +Openstack-Request-Id: req-e7442c67-581e-438d-a03b-0ab7ef377336 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.61 -{"uuid": "3a8509de-a044-40ed-9e93-1b1be7ee1896", "created_at": "2024-01-06T10:56:58.694548+00:00", "updated_at": null, "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/3a8509de-a044-40ed-9e93-1b1be7ee1896", "rel": "self"}, {"href": "http://localhost/nodes/3a8509de-a044-40ed-9e93-1b1be7ee1896", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3a8509de-a044-40ed-9e93-1b1be7ee1896/ports", "rel": "self"}, {"href": "http://localhost/nodes/3a8509de-a044-40ed-9e93-1b1be7ee1896/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3a8509de-a044-40ed-9e93-1b1be7ee1896/states", "rel": "self"}, {"href": "http://localhost/nodes/3a8509de-a044-40ed-9e93-1b1be7ee1896/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3a8509de-a044-40ed-9e93-1b1be7ee1896/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3a8509de-a044-40ed-9e93-1b1be7ee1896/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3a8509de-a044-40ed-9e93-1b1be7ee1896/volume", "rel": "self"}, {"href": "http://localhost/nodes/3a8509de-a044-40ed-9e93-1b1be7ee1896/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/d3bb65b7-3b8f-4a27-a512-63f875eb165c [{'path': '/retired', 'value': True, 'op': 'replace'}, {'path': '/retired_reason', 'value': 'a better reason', 'op': 'replace'}] -GOT:Response: 200 OK +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-83e9d4f6-8d60-46c0-b3c8-90dee4f60ce2 +Openstack-Request-Id: req-e7442c67-581e-438d-a03b-0ab7ef377336 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.61 -{"uuid": "d3bb65b7-3b8f-4a27-a512-63f875eb165c", "created_at": "2024-01-06T10:56:58.794919+00:00", "updated_at": null, "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/d3bb65b7-3b8f-4a27-a512-63f875eb165c", "rel": "self"}, {"href": "http://localhost/nodes/d3bb65b7-3b8f-4a27-a512-63f875eb165c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d3bb65b7-3b8f-4a27-a512-63f875eb165c/ports", "rel": "self"}, {"href": "http://localhost/nodes/d3bb65b7-3b8f-4a27-a512-63f875eb165c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d3bb65b7-3b8f-4a27-a512-63f875eb165c/states", "rel": "self"}, {"href": "http://localhost/nodes/d3bb65b7-3b8f-4a27-a512-63f875eb165c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d3bb65b7-3b8f-4a27-a512-63f875eb165c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d3bb65b7-3b8f-4a27-a512-63f875eb165c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d3bb65b7-3b8f-4a27-a512-63f875eb165c/volume", "rel": "self"}, {"href": "http://localhost/nodes/d3bb65b7-3b8f-4a27-a512-63f875eb165c/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 +{"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-f901d681-a8e8-45cb-b0f6-47f83fce90ff +Openstack-Request-Id: req-cf3834a2-7b09-4508-bc31-54016190b48a 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/e0fb785a-a940-4b7b-a81b-8f2c16973243 [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] -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.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.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy ... 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.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.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.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.conductor.test_manager.UpdateNodeTestCase.test_update_node_from_invalid_driver -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_from_invalid_driver ... ok -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 +X-Openstack-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-c1a20599-bf07-4720-a103-fafdcbbe47ff +Openstack-Request-Id: req-cf3834a2-7b09-4508-bc31-54016190b48a X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"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 Content-Type: application/json -Openstack-Request-Id: req-4805786a-08d1-4202-acb6-d90d77d83aa4 +Openstack-Request-Id: req-783737fb-b2ec-4b53-a231-96ddc3c75c8d X-Openstack-Ironic-Api-Maximum-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/console -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} -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-b3d6a2e9-46a8-496f-88a2-5c826d1e794a +Openstack-Request-Id: req-783737fb-b2ec-4b53-a231-96ddc3c75c8d X-Openstack-Ironic-Api-Maximum-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/console -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-060b8711-f5da-4281-b9be-c02d66f1e1eb -X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"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 +GOT:{'nodes': [{'uuid': '859a022b-eb13-4195-b5f0-5b224b88c4c6', 'created_at': '2025-02-07T17:33:18.026777+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/859a022b-eb13-4195-b5f0-5b224b88c4c6', 'rel': 'self'}, {'href': 'http://localhost/nodes/859a022b-eb13-4195-b5f0-5b224b88c4c6', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/859a022b-eb13-4195-b5f0-5b224b88c4c6/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/859a022b-eb13-4195-b5f0-5b224b88c4c6/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/859a022b-eb13-4195-b5f0-5b224b88c4c6/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/859a022b-eb13-4195-b5f0-5b224b88c4c6/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/859a022b-eb13-4195-b5f0-5b224b88c4c6/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/859a022b-eb13-4195-b5f0-5b224b88c4c6/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/859a022b-eb13-4195-b5f0-5b224b88c4c6/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/859a022b-eb13-4195-b5f0-5b224b88c4c6/volume', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?owner=bob {} +GOT:{'nodes': [{'uuid': '89270ead-b547-46f9-98c8-f15b00d582f6', 'created_at': '2025-02-07T17:33:18.034144+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/89270ead-b547-46f9-98c8-f15b00d582f6', 'rel': 'self'}, {'href': 'http://localhost/nodes/89270ead-b547-46f9-98c8-f15b00d582f6', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/89270ead-b547-46f9-98c8-f15b00d582f6/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/89270ead-b547-46f9-98c8-f15b00d582f6/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/89270ead-b547-46f9-98c8-f15b00d582f6/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/89270ead-b547-46f9-98c8-f15b00d582f6/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/89270ead-b547-46f9-98c8-f15b00d582f6/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/89270ead-b547-46f9-98c8-f15b00d582f6/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/89270ead-b547-46f9-98c8-f15b00d582f6/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/89270ead-b547-46f9-98c8-f15b00d582f6/volume', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?owner=fred {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-375081a2-204d-4272-a96a-372cd954912b +Openstack-Request-Id: req-4126319b-b5d4-4d38-9d44-1f338856ed06 X-Openstack-Ironic-Api-Maximum-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: 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.50\", \"debuginfo\": null}"} +GET: /v1/nodes/detail?owner=fred {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-33e4262b-982d-48d8-935f-cefc122c189e +Openstack-Request-Id: req-e809dbb5-be4d-4abb-9b25-7fb4ee73a37d X-Openstack-Ironic-Api-Maximum-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: 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.50\", \"debuginfo\": null}"} +GET: /v1/nodes?provision_state=available {} +GOT:{'nodes': [{'uuid': '79731d5e-e5a9-494f-a6ef-cfbb70d1e0ad', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/79731d5e-e5a9-494f-a6ef-cfbb70d1e0ad', 'rel': 'self'}, {'href': 'http://localhost/nodes/79731d5e-e5a9-494f-a6ef-cfbb70d1e0ad', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?provision_state=deploying {} +GOT:{'nodes': [{'uuid': 'ecd0a5f8-6f32-4ae0-9cbb-4c297d387c5f', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'deploying', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/ecd0a5f8-6f32-4ae0-9cbb-4c297d387c5f', 'rel': 'self'}, {'href': 'http://localhost/nodes/ecd0a5f8-6f32-4ae0-9cbb-4c297d387c5f', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?provision_state=test {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-a3513bca-0569-4839-9f20-122b8e99dd70 +Openstack-Request-Id: req-815a5d89-0235-410f-92b6-d1dc4cd3b633 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +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': '54e7a7a0-b53d-47f2-9830-9579437b48af', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/54e7a7a0-b53d-47f2-9830-9579437b48af', 'rel': 'self'}, {'href': 'http://localhost/nodes/54e7a7a0-b53d-47f2-9830-9579437b48af', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?resource_class=bar {} +GOT:{'nodes': [{'uuid': 'aa86a565-11c4-42bf-8a0a-d72cd0e867a3', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/aa86a565-11c4-42bf-8a0a-d72cd0e867a3', 'rel': 'self'}, {'href': 'http://localhost/nodes/aa86a565-11c4-42bf-8a0a-d72cd0e867a3', '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.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.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.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_neutron.TestNeutronNetworkActions.test_validate_agent_up +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_up ... 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.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.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.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.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_image_service.HttpImageServiceTestCase.test_show_cache_disabled +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_disabled ... 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.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.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.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.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_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_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_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.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_image_service.HttpImageServiceTestCase.test_show_rfc_822 +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_822 ... 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.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.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_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_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_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.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.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.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.common.test_image_service.HttpImageServiceTestCase.test_validate_href_custom_timeout +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_custom_timeout ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:18.660608+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-5ca9ac9d-0115-48b1-9986-cbee658d8ad0 +Openstack-Request-Id: req-6ef5d6c5-68ad-4276-a6d5-6012a06bebe0 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +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-d8fbbeaa-d6f5-47e0-ad08-cdbdc4cf37c0 +Openstack-Request-Id: req-4fbaf9d2-eacb-40fb-a55c-87ba5593cee0 X-Openstack-Ironic-Api-Maximum-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: 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-4e9b323a-17d9-40ea-b371-6cfa585be1e9 +Openstack-Request-Id: req-57e26435-e564-41e8-8326-cc9b602287e2 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +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.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.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.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.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_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_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_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback ... 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.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.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.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_node.TestListNodes.test_get_one +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one ... 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.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.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.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.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.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug ... 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.db.test_allocations.AllocationsTestCase.test_create +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create ... 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 +GOT:{'nodes': [{'uuid': 'a225578d-fc28-464d-91a7-864510506123', 'created_at': '2025-02-07T17:33:18.870737+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/a225578d-fc28-464d-91a7-864510506123', 'rel': 'self'}, {'href': 'http://localhost/nodes/a225578d-fc28-464d-91a7-864510506123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/a225578d-fc28-464d-91a7-864510506123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a225578d-fc28-464d-91a7-864510506123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/a225578d-fc28-464d-91a7-864510506123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/a225578d-fc28-464d-91a7-864510506123/states', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?resource_class=bar {} +GOT:{'nodes': [{'uuid': 'ef70d6df-69c2-4d13-84e5-a101e286d2c9', 'created_at': '2025-02-07T17:33:18.877712+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/ef70d6df-69c2-4d13-84e5-a101e286d2c9', 'rel': 'self'}, {'href': 'http://localhost/nodes/ef70d6df-69c2-4d13-84e5-a101e286d2c9', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/ef70d6df-69c2-4d13-84e5-a101e286d2c9/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ef70d6df-69c2-4d13-84e5-a101e286d2c9/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ef70d6df-69c2-4d13-84e5-a101e286d2c9/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ef70d6df-69c2-4d13-84e5-a101e286d2c9/states', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?resource_class=fake {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-71a2af16-4268-4700-ac18-ba505e6aa9b6 +Openstack-Request-Id: req-5b343ad6-d40a-448d-9907-f7e0a46d039b X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +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-341f92dd-b5c6-4ab0-905c-d9f569fdf1fb +Openstack-Request-Id: req-9e5e6167-0a04-43a3-ae78-85435ca1d947 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +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 -Openstack-Request-Id: req-6e9bbbdb-3774-42f1-8868-bbed116db470 +Openstack-Request-Id: req-4cb6490a-0408-4704-a463-e142fe206ee8 X-Openstack-Ironic-Api-Maximum-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 -GOT:Response: 404 Not Found +{"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 -Openstack-Request-Id: req-35c9f606-dea4-43cf-ab0b-08f100d6fa17 +Openstack-Request-Id: req-96c7a992-2330-4f9b-86f0-ff5860958b00 X-Openstack-Ironic-Api-Maximum-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_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.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_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:58.903313+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-06T10:56:58.903313+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'}]} +{"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-06T10:56:58.983517+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'}]} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:19.458335+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_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_utils.GetConfigDriveImageTestCase.test_build_populated -ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_populated ... 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.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.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.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.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.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.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.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.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.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.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.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.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.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.common.test_network.TestRemoveVifsTestCase.test_remove_vifs_from_node_failure -ironic.tests.unit.common.test_network.TestRemoveVifsTestCase.test_remove_vifs_from_node_failure ... ok -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-ef74023d-c0f5-479a-89a1-855f64e8cecb -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-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-be001c47-149d-421c-b6ef-77fe6aa5399b -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-be001c47-149d-421c-b6ef-77fe6aa5399b -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 +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_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.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.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.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.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.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.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_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.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.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.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.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_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.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 +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-32a4f83c-7efa-4c89-82c2-d5b802260882 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-efae894c-f0a6-4e97-998b-539a6eed22ab X-Openstack-Ironic-Api-Maximum-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-c02d7f33c123", "created_at": "2025-02-07T17:33:19.382026+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-07T17:33:19.382026+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-32a4f83c-7efa-4c89-82c2-d5b802260882 +Openstack-Request-Id: req-de9bccdd-bc6a-4285-a55c-8d0d9c5e35b4 X-Openstack-Ironic-Api-Maximum-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-a1ac2aaf-c572-4db3-8c46-c25bb0326705 +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.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.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.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_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.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.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request +ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request ... 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 +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-b543c508-abf4-4133-aa5d-9556e7cf17dd 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-a1ac2aaf-c572-4db3-8c46-c25bb0326705 +X-Openstack-Ironic-Api-Version: 1.1 + +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-2c0fb08d-72f3-4b85-8c25-4a4331e8f3e8 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-8b2517b9-c3f1-47a5-b366-9bbf7e834236 +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': {}}]} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-b2efac97-fb95-4583-981c-1c183b031139 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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 + +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-8b2517b9-c3f1-47a5-b366-9bbf7e834236 +Openstack-Request-Id: req-aec49909-6aba-4627-888e-e40ae45e121f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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-5a9c30c6-7916-466c-9974-145b30d8657b +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-91dab09e-e565-4e8b-a45b-587eee29be1e X-Openstack-Ironic-Api-Maximum-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-5a9c30c6-7916-466c-9974-145b30d8657b +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-6efb163c-fd67-42e3-9bb1-fa7070ae5459 X-Openstack-Ironic-Api-Maximum-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-87f3257d-f00d-49bf-810a-a321b353fd3f +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-2e568667-76e7-47f5-9670-5b8ab08b73ba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-87f3257d-f00d-49bf-810a-a321b353fd3f +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-871ea718-3ffe-4b76-8696-83c7ede220ae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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'} -GOT:Response: 503 Service Unavailable +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-d76fba8f-5208-4790-98a7-a5e3c1fa3d52 +Openstack-Request-Id: req-7ec3fc2e-3d81-4ebe-9a5a-98c3a57e2b68 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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.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-d76fba8f-5208-4790-98a7-a5e3c1fa3d52 +Openstack-Request-Id: req-335c63a2-c4d0-4ce2-9289-106d7bf87290 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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.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_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_utils.GetConfigDriveImageTestCase.test_no_configdrive -ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_no_configdrive ... 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.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.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.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:59.034120+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-06T10:56:59.034120+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-06T10:56:59.105615+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.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_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.conductor.test_utils.GetConfigDriveImageTestCase.test_string -ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_string ... 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.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.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.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.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_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.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.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_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.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.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.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_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_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities ... 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.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.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 -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:59.180771+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/6397d85f-a46a-4fa4-b483-dce4ac97e7a7 {} -GOT:{'uuid': '6397d85f-a46a-4fa4-b483-dce4ac97e7a7', 'created_at': '2024-01-06T10:56:59.239150+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/6397d85f-a46a-4fa4-b483-dce4ac97e7a7', 'rel': 'self'}, {'href': 'http://localhost/nodes/6397d85f-a46a-4fa4-b483-dce4ac97e7a7', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/6397d85f-a46a-4fa4-b483-dce4ac97e7a7/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/6397d85f-a46a-4fa4-b483-dce4ac97e7a7/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/6397d85f-a46a-4fa4-b483-dce4ac97e7a7/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/6397d85f-a46a-4fa4-b483-dce4ac97e7a7/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/6397d85f-a46a-4fa4-b483-dce4ac97e7a7/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/6397d85f-a46a-4fa4-b483-dce4ac97e7a7/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/6397d85f-a46a-4fa4-b483-dce4ac97e7a7/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/6397d85f-a46a-4fa4-b483-dce4ac97e7a7/volume', 'rel': 'bookmark'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -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.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.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.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.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.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.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare ... 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.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.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.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.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_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.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.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:59.301070+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-06T10:56:59.301070+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-06T10:56:59.384256+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_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.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_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.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning ... 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.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port ... 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_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.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.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.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.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.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.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.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.common.test_rpc.TestRequestContextSerializer.test_deserialize_context -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context ... 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.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity ... 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.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.conductor.test_manager.CreateNodeTestCase.test_create_node -ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node ... 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.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.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.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.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.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.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.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.common.test_rpc.TestRequestContextSerializer.test_serialize_context -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_context ... 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.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.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.common.test_rpc.TestRequestContextSerializer.test_serialize_entity -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity ... 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_manager.CreatePortTestCase.test_create_port -ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:59.384256+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-06T10:56:59.471967+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-06T10:56:59.576771+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/03a9288e-5a6d-4f99-bc42-0e27389535c2 {} -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.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.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.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.ansible.test_deploy.TestAnsibleDeploy.test_tear_down -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down ... 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.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.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 -:283: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead -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.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_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.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.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.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.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.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.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_manager.UpdateNodeTestCase.test_update_node_interface_in_allowed_state -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_allowed_state ... ok -:283: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead -GOT:{'uuid': '03a9288e-5a6d-4f99-bc42-0e27389535c2', 'created_at': '2024-01-06T10:56:59.692591+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/03a9288e-5a6d-4f99-bc42-0e27389535c2', 'rel': 'self'}, {'href': 'http://localhost/nodes/03a9288e-5a6d-4f99-bc42-0e27389535c2', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/03a9288e-5a6d-4f99-bc42-0e27389535c2/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/03a9288e-5a6d-4f99-bc42-0e27389535c2/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/03a9288e-5a6d-4f99-bc42-0e27389535c2/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/03a9288e-5a6d-4f99-bc42-0e27389535c2/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/03a9288e-5a6d-4f99-bc42-0e27389535c2/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/03a9288e-5a6d-4f99-bc42-0e27389535c2/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/03a9288e-5a6d-4f99-bc42-0e27389535c2/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/03a9288e-5a6d-4f99-bc42-0e27389535c2/volume', 'rel': 'bookmark'}]} -GET: /v1/nodes/8dcb48f0-c0b6-47c0-adb3-387324684b7c {} -GOT:{'uuid': '8dcb48f0-c0b6-47c0-adb3-387324684b7c', 'created_at': '2024-01-06T10:56:59.724575+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/8dcb48f0-c0b6-47c0-adb3-387324684b7c', 'rel': 'self'}, {'href': 'http://localhost/nodes/8dcb48f0-c0b6-47c0-adb3-387324684b7c', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/8dcb48f0-c0b6-47c0-adb3-387324684b7c/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/8dcb48f0-c0b6-47c0-adb3-387324684b7c/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/8dcb48f0-c0b6-47c0-adb3-387324684b7c/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/8dcb48f0-c0b6-47c0-adb3-387324684b7c/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/8dcb48f0-c0b6-47c0-adb3-387324684b7c/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/8dcb48f0-c0b6-47c0-adb3-387324684b7c/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/8dcb48f0-c0b6-47c0-adb3-387324684b7c/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/8dcb48f0-c0b6-47c0-adb3-387324684b7c/volume', 'rel': 'bookmark'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:59.832703+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_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.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.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.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.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.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.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.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.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.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.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.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.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_ramdisk.TestHeartbeat.test_heartbeat_rejects_different_callback_url -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_heartbeat_rejects_different_callback_url ... ok -:283: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead -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.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.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.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_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.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 -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-651f5c09-4b73-45a8-8998-3ffc621fd037 +Openstack-Request-Id: req-290a2460-1c5f-4396-a400-cdf6b60ab26e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e0fb785a-a940-4b7b-a81b-8f2c16973243", "created_at": "2024-01-06T10:56:58.963492+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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/e0fb785a-a940-4b7b-a81b-8f2c16973243", "rel": "self"}, {"href": "http://localhost/nodes/e0fb785a-a940-4b7b-a81b-8f2c16973243", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e0fb785a-a940-4b7b-a81b-8f2c16973243/ports", "rel": "self"}, {"href": "http://localhost/nodes/e0fb785a-a940-4b7b-a81b-8f2c16973243/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e0fb785a-a940-4b7b-a81b-8f2c16973243/states", "rel": "self"}, {"href": "http://localhost/nodes/e0fb785a-a940-4b7b-a81b-8f2c16973243/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e0fb785a-a940-4b7b-a81b-8f2c16973243/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e0fb785a-a940-4b7b-a81b-8f2c16973243/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e0fb785a-a940-4b7b-a81b-8f2c16973243/volume", "rel": "self"}, {"href": "http://localhost/nodes/e0fb785a-a940-4b7b-a81b-8f2c16973243/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/a3b85434-0298-40fc-ae04-1538c1615a6d [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] +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-cd8cd281-2663-4ddc-be9d-06b1929d3190 +Openstack-Request-Id: req-3f0e4e5d-5242-4fab-ac23-6d72bdb4afd5 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.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PATCH: /v1/nodes/eaa3f69a-8371-4e87-b39f-0aad65199618 [{'path': '/traits', 'value': ['CUSTOM_1'], 'op': 'add'}] +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-6ffe7b4b-4a24-4665-ae57-3096f5cf626f -X-Openstack-Ironic-Api-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-44919e53-de4e-4b57-b5eb-899a55470067 +Openstack-Request-Id: req-5d234112-f551-4e83-9c53-eae4c6f2b710 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-06T10:56:59.405012+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"}]} -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'} +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-2fcbf540-c7db-45a0-b426-65fbcf441692 +Openstack-Request-Id: req-66b49837-4da9-4db6-aace-389340661b92 X-Openstack-Ironic-Api-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'} +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-cddc8e8d-cfca-4af6-93b4-c0cf22fd1e71 +Openstack-Request-Id: req-4d931559-ed9d-4101-8d35-4a070f6bfb4c X-Openstack-Ironic-Api-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}"} -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.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.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.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.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.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 -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:56:59.832703+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-06T10:56:59.956445+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-06T10:56:59.956445+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.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 -: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_ramdisk.TestHeartbeat.test_ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok ... 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.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.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.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.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_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.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.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 -: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_retired -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired ... 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.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.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.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.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.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.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.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.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.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 -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:57:00.061125+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/ca762203-34c4-4477-9126-20844c3849f7 {} -GOT:{'uuid': 'ca762203-34c4-4477-9126-20844c3849f7', 'created_at': '2024-01-06T10:57:00.207095+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/ca762203-34c4-4477-9126-20844c3849f7', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca762203-34c4-4477-9126-20844c3849f7', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/ca762203-34c4-4477-9126-20844c3849f7/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca762203-34c4-4477-9126-20844c3849f7/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ca762203-34c4-4477-9126-20844c3849f7/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca762203-34c4-4477-9126-20844c3849f7/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/ca762203-34c4-4477-9126-20844c3849f7/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca762203-34c4-4477-9126-20844c3849f7/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/ca762203-34c4-4477-9126-20844c3849f7/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca762203-34c4-4477-9126-20844c3849f7/volume', 'rel': 'bookmark'}]} -GET: /v1/nodes/c839da64-d7a8-4042-aa1c-bd2c407e046a {} -GOT:{'uuid': 'c839da64-d7a8-4042-aa1c-bd2c407e046a', 'created_at': '2024-01-06T10:57:00.266307+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/c839da64-d7a8-4042-aa1c-bd2c407e046a', 'rel': 'self'}, {'href': 'http://localhost/nodes/c839da64-d7a8-4042-aa1c-bd2c407e046a', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/c839da64-d7a8-4042-aa1c-bd2c407e046a/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c839da64-d7a8-4042-aa1c-bd2c407e046a/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/c839da64-d7a8-4042-aa1c-bd2c407e046a/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/c839da64-d7a8-4042-aa1c-bd2c407e046a/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/c839da64-d7a8-4042-aa1c-bd2c407e046a/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/c839da64-d7a8-4042-aa1c-bd2c407e046a/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/c839da64-d7a8-4042-aa1c-bd2c407e046a/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/c839da64-d7a8-4042-aa1c-bd2c407e046a/volume', 'rel': 'bookmark'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -: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_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.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.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_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.drac.test_raid.DracManageVirtualDisksTestCase.test__change_physical_disk_mode -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__change_physical_disk_mode ... 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-4b411f81-d1e9-4047-9b5f-2046b9824d0b +Openstack-Request-Id: req-8914c264-7d9e-476e-b185-bbc99b755308 X-Openstack-Ironic-Api-Maximum-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-4b411f81-d1e9-4047-9b5f-2046b9824d0b -X-Openstack-Ironic-Api-Maximum-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-d8f7bbfd-06c6-4f17-8bfa-c459681e53eb -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-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-d8f7bbfd-06c6-4f17-8bfa-c459681e53eb -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-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-b1f3d2a9-fe99-4eea-a1e0-0d07eb0fcf92 +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-5ca83c9c-31a8-4b96-97b0-f7f2c43d3c79 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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.76 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 0} +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation ... 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.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.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_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.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.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.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_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.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.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.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.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.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_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.db.test_allocations.AllocationsTestCase.test_destroy_allocation_uuid +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_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.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.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.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.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.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.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.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 +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.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.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 +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-b1f3d2a9-fe99-4eea-a1e0-0d07eb0fcf92 +Openstack-Request-Id: req-710416f1-c7e3-4089-8387-e0bfcf5948ed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +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': '1053b5e6-d057-4b22-9f32-2fc19fa97edb', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/1053b5e6-d057-4b22-9f32-2fc19fa97edb', 'rel': 'self'}, {'href': 'http://localhost/ports/1053b5e6-d057-4b22-9f32-2fc19fa97edb', 'rel': 'bookmark'}]}, {'uuid': '299410a4-0591-4a0a-9abc-2f359892e934', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/299410a4-0591-4a0a-9abc-2f359892e934', 'rel': 'self'}, {'href': 'http://localhost/ports/299410a4-0591-4a0a-9abc-2f359892e934', 'rel': 'bookmark'}]}, {'uuid': 'f6a2b427-049a-4ad2-85c9-6b83bce2c196', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/f6a2b427-049a-4ad2-85c9-6b83bce2c196', 'rel': 'self'}, {'href': 'http://localhost/ports/f6a2b427-049a-4ad2-85c9-6b83bce2c196', '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-bea938bc-d5a7-4289-b358-6077b6c6fe35 +Openstack-Request-Id: req-45691d72-c534-4b0c-9f9f-1057da62cf46 X-Openstack-Ironic-Api-Maximum-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\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/ports?node=test-node {} +GOT:{'ports': [{'uuid': '3114fed5-3bca-41c3-a5e3-2278a8f567b3', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/3114fed5-3bca-41c3-a5e3-2278a8f567b3', 'rel': 'self'}, {'href': 'http://localhost/ports/3114fed5-3bca-41c3-a5e3-2278a8f567b3', 'rel': 'bookmark'}]}, {'uuid': 'd8f6de77-a264-4b96-a031-e43ab12f3fda', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/d8f6de77-a264-4b96-a031-e43ab12f3fda', 'rel': 'self'}, {'href': 'http://localhost/ports/d8f6de77-a264-4b96-a031-e43ab12f3fda', 'rel': 'bookmark'}]}, {'uuid': '3a9f82b5-4402-4212-8802-30e6b135b605', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/3a9f82b5-4402-4212-8802-30e6b135b605', 'rel': 'self'}, {'href': 'http://localhost/ports/3a9f82b5-4402-4212-8802-30e6b135b605', '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-07T17:33:19.186487+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': '2025-02-07T17:33:19.286019+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-07T17:33:19.404264+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-bea938bc-d5a7-4289-b358-6077b6c6fe35 +Openstack-Request-Id: req-31faa17b-1aae-4653-9da5-7047839f0c29 X-Openstack-Ironic-Api-Maximum-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 +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-07T17:33:19.565439+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-37572fb4-7816-4fdb-a714-dc857a24554c +Openstack-Request-Id: req-3e15eb09-404d-4272-9f1a-151c19ecb5ee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +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': '83ddb58b-37ad-46d7-9f4e-b62210d35455', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/83ddb58b-37ad-46d7-9f4e-b62210d35455', 'rel': 'self'}, {'href': 'http://localhost/ports/83ddb58b-37ad-46d7-9f4e-b62210d35455', 'rel': 'bookmark'}]}, {'uuid': 'fdd9c30b-9cb5-4ed7-a699-a3b830fc68f8', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/fdd9c30b-9cb5-4ed7-a699-a3b830fc68f8', 'rel': 'self'}, {'href': 'http://localhost/ports/fdd9c30b-9cb5-4ed7-a699-a3b830fc68f8', 'rel': 'bookmark'}]}, {'uuid': '2070e471-db1b-4731-b449-90fac017e3b8', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/2070e471-db1b-4731-b449-90fac017e3b8', 'rel': 'self'}, {'href': 'http://localhost/ports/2070e471-db1b-4731-b449-90fac017e3b8', 'rel': 'bookmark'}]}]} +GET: /v1/ports?fields=address&limit=2 {} +GOT:{'ports': [{'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/23389369-c409-4dba-8032-d0a1629fbafd', 'rel': 'self'}, {'href': 'http://localhost/ports/23389369-c409-4dba-8032-d0a1629fbafd', 'rel': 'bookmark'}]}, {'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/e056aa45-0b57-42bc-b807-89f11773cc8e', 'rel': 'self'}, {'href': 'http://localhost/ports/e056aa45-0b57-42bc-b807-89f11773cc8e', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=e056aa45-0b57-42bc-b807-89f11773cc8e'} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra {} +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.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.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.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.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_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.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.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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_notdone +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_notdone ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:19.555421+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-07T17:33:20.012329+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.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.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 +API ACL Testing Path get /v1/nodes +GET: /v1/nodes {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-37572fb4-7816-4fdb-a714-dc857a24554c +Openstack-Request-Id: req-66a72268-2894-461f-933a-3712ccc8a7f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "518a55bb-779e-496f-b749-5a3f67103c95", "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-02216b21-38fa-4dd9-b1f1-cfd7e7331390 +Openstack-Request-Id: req-66a72268-2894-461f-933a-3712ccc8a7f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "518a55bb-779e-496f-b749-5a3f67103c95", "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-02216b21-38fa-4dd9-b1f1-cfd7e7331390 +Openstack-Request-Id: req-e506e572-c98d-4a37-854e-5edf91a7c07c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "ac5b66ec-898e-48c1-9ffd-ab47dad39afa", "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-bdc13447-7e9e-4e8b-b00a-0e3f98949342 +Openstack-Request-Id: req-e506e572-c98d-4a37-854e-5edf91a7c07c X-Openstack-Ironic-Api-Maximum-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 +{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "ac5b66ec-898e-48c1-9ffd-ab47dad39afa", "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-bdc13447-7e9e-4e8b-b00a-0e3f98949342 +Openstack-Request-Id: req-5f252b2d-d9cb-439c-b037-bbaeeb5c4872 X-Openstack-Ironic-Api-Maximum-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 +{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "75206169-7b51-4c84-a936-bc05b8de950b", "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-0339d2be-d896-44a9-9473-12816e2f7e26 +Openstack-Request-Id: req-5f252b2d-d9cb-439c-b037-bbaeeb5c4872 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "75206169-7b51-4c84-a936-bc05b8de950b", "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-0339d2be-d896-44a9-9473-12816e2f7e26 +Openstack-Request-Id: req-af993cb6-b78b-4b1c-89b0-2373e0eaff98 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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.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.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.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.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_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.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 -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:57:00.381245+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-06T10:57:00.381245+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-06T10:57:00.537673+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.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_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_ramdisk.TestHeartbeat.test_ok_by_name -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_by_name ... 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_allocations.DoAllocateTestCase.test_name_match_first -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_name_match_first ... 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.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.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.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.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.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.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_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.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.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.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_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.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.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_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.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.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.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_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.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.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config ... 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_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_ramdisk.TestHeartbeat.test_old_API_agent_version_error -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_version_error ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:57:00.537673+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-06T10:57:00.699762+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/7f2b983a-aad9-4da0-82bb-c98a7a8cd45f {} -GOT:{'uuid': '7f2b983a-aad9-4da0-82bb-c98a7a8cd45f', 'created_at': '2024-01-06T10:57:00.838965+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/7f2b983a-aad9-4da0-82bb-c98a7a8cd45f', 'rel': 'self'}, {'href': 'http://localhost/nodes/7f2b983a-aad9-4da0-82bb-c98a7a8cd45f', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/7f2b983a-aad9-4da0-82bb-c98a7a8cd45f/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/7f2b983a-aad9-4da0-82bb-c98a7a8cd45f/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/7f2b983a-aad9-4da0-82bb-c98a7a8cd45f/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/7f2b983a-aad9-4da0-82bb-c98a7a8cd45f/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/7f2b983a-aad9-4da0-82bb-c98a7a8cd45f/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/7f2b983a-aad9-4da0-82bb-c98a7a8cd45f/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/7f2b983a-aad9-4da0-82bb-c98a7a8cd45f/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/7f2b983a-aad9-4da0-82bb-c98a7a8cd45f/volume', 'rel': 'bookmark'}]} -GET: /v1/nodes/ced1ddca-e2cd-4055-b6b1-94de1d2e0a07 {} -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.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.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.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.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.UpdateNodeTestCase.test_update_node_protected_unset -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_unset ... 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.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.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.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.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.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_base_manager.StartStopTestCase.test_start_with_mdns -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns ... 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.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_allocations.DoAllocateTestCase.test_nodes_filtered_out_project -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out_project ... 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.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.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.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.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 -GOT:{'uuid': 'ced1ddca-e2cd-4055-b6b1-94de1d2e0a07', 'created_at': '2024-01-06T10:57:00.883879+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/ced1ddca-e2cd-4055-b6b1-94de1d2e0a07', 'rel': 'self'}, {'href': 'http://localhost/nodes/ced1ddca-e2cd-4055-b6b1-94de1d2e0a07', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/ced1ddca-e2cd-4055-b6b1-94de1d2e0a07/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ced1ddca-e2cd-4055-b6b1-94de1d2e0a07/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ced1ddca-e2cd-4055-b6b1-94de1d2e0a07/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ced1ddca-e2cd-4055-b6b1-94de1d2e0a07/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/ced1ddca-e2cd-4055-b6b1-94de1d2e0a07/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/ced1ddca-e2cd-4055-b6b1-94de1d2e0a07/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/ced1ddca-e2cd-4055-b6b1-94de1d2e0a07/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/ced1ddca-e2cd-4055-b6b1-94de1d2e0a07/volume', 'rel': 'bookmark'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:57:00.989008+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-06T10:57:00.989008+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.TestListNodes.test_node_states -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states ... 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.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 -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 +{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "471f3fbf-0241-4723-9211-054c06883812", "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-c066088d-2031-42cf-bcbb-e6b6c69b4e16 +Openstack-Request-Id: req-af993cb6-b78b-4b1c-89b0-2373e0eaff98 X-Openstack-Ironic-Api-Maximum-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 -GOT:Response: 404 Not Found +{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "471f3fbf-0241-4723-9211-054c06883812", "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-219268d6-75de-4da9-9ebb-dc0bad57ccd6 +Openstack-Request-Id: req-53df00eb-8e27-4389-9cb8-2ca25df2947e X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"nodes": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-dc7dd596-8eb1-4f54-b686-7ade19e1e4d9 +Openstack-Request-Id: req-53df00eb-8e27-4389-9cb8-2ca25df2947e X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"nodes": []} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 {} +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.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.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.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_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.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name ... ok +Error while running foo: bar. +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.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_utils.FastTrackTestCase.test_is_fast_track +ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track ... 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_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.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_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.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 +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-6e39c0e2-b79f-43d0-bfc6-3e4d63333c5c +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-15f877eb-a6ed-4e24-9afc-3e44bfe84952 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:19.698790+00:00", "updated_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-502d1d62-625a-49b9-8c82-6bfd98953820 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-3fb1c322-e660-49c2-abfc-90ee8fcc61f1 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:19.939156+00:00", "updated_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-07T17:33:19.939156+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-c7d5c8cd-1f88-4eae-b525-1042e22ca29f +Openstack-Request-Id: req-4d8bd3c5-b6f2-4904-9762-fae20c7a0eb8 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +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.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.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.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.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_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_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.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups ... 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.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.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_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.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 +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.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.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.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.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.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.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_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_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.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.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 +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:20.108738+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-07T17:33:20.198363+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-07T17:33:20.276074+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.db.test_allocations.AllocationsTestCase.test_get_allocation_list +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list ... 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.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_node.TestPut.test_set_boot_device_not_supported +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_not_supported ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-95ee4001-a8a7-40f7-8d6d-aa9d47965275 +Openstack-Request-Id: req-53318396-8844-4aca-bb32-e7936b0d2303 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-02-07T17:33:20.036701+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-44230896-b338-4d67-8aa0-36e3d903263e +Openstack-Request-Id: req-53318396-8844-4aca-bb32-e7936b0d2303 X-Openstack-Ironic-Api-Maximum-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 {} +{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-02-07T17:33:20.036701+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-5f384139-fd00-4917-aafd-0dc16b5eead2 +Openstack-Request-Id: req-6951de19-f86e-4acd-9378-106db5ee5577 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8f687549-be06-40f5-bdc5-b7108479a819 +Openstack-Request-Id: req-6951de19-f86e-4acd-9378-106db5ee5577 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f {} +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.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.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.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 +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-ddf4dd7d-5a90-40d3-a728-075ee97d9114 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-6d9904ab-cdf4-4883-a2b7-b7789e02a44e X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:20.200875+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': '2025-02-07T17:33:20.200875+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-cd7ecc01-70dc-49e8-816b-02e401843dfb +Openstack-Request-Id: req-e8c387e6-834c-4f81-b5cd-b466b731d476 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +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.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.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.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 +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.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.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_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_port.TestListPorts.test_get_one_custom_fields +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_custom_fields ... ok +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-341922fd-5b8a-40f9-ac82-ebe4060c3bbd +Openstack-Request-Id: req-24ac9528-6d8b-449a-8f7d-4261516dbd21 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"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-979e357e-90d8-49f8-966f-0b783d02f472 +Openstack-Request-Id: req-24ac9528-6d8b-449a-8f7d-4261516dbd21 X-Openstack-Ironic-Api-Maximum-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 -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.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.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_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.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.CheckTimeoutsTestCase.test_check_rescuewait_timeouts -ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts ... 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.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.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.conductor.test_allocations.DoAllocateTestCase.test_success -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_success ... 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_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_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.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.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.conductor.test_allocations.DoAllocateTestCase.test_with_candidates -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_candidates ... 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.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_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_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.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_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.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.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_manager.VifTestCase.test_vif_attach_node_locked -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked ... 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.conductor.test_allocations.DoAllocateTestCase.test_with_traits -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_traits ... 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.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.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.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.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.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.conductor.test_manager.DestroyPortTestCase.test_destroy_port -ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port ... 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.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.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.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.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.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.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.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.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.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.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_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_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.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 -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.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.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.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.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.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.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.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.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.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.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.UpdateNodeTestCase.test_update_resource_class_allowed_state -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_allowed_state ... 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_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_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.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.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.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 -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/2f3a1f09-184c-47ed-a7e5-7ef956f61576/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/722f9c8d-a271-4b49-afcf-178f7827d410/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-06T10:57:01.500182+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-06T10:57:01.500182+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/613fcba6-71cc-49bc-a5ee-f37a2d5c02b4/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/ac9b89d4-47a9-400c-a3f8-6fdb493f4576/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.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.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.conductor.test_manager.VifTestCase.test_vif_detach -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach ... 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.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.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.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.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.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.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.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.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.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.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.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:57:01.926402+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': '2024-01-06T10:57:01.926402+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': '2024-01-06T10:57:02.089487+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.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.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.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.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.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.conductor.test_utils.CacheVendorTestCase.test_already_present -ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_already_present ... 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_manager.VifTestCase.test_vif_detach_validate_error -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_validate_error ... 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.TestListNodes.test_one -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one ... 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.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.conductor.test_utils.CacheVendorTestCase.test_empty -ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_empty ... 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.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.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware ... 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_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target -ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover -ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover ... 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-2b8fe9b0-19e6-4a14-b485-7fddf31967ca +Openstack-Request-Id: req-e19f0e5d-21cf-4e49-95bc-8c162dfb8039 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-2b8fe9b0-19e6-4a14-b485-7fddf31967ca +Openstack-Request-Id: req-e19f0e5d-21cf-4e49-95bc-8c162dfb8039 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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-455cc079-29c3-4ef1-8658-ed37c41862fa -X-Openstack-Ironic-Api-Maximum-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-455cc079-29c3-4ef1-8658-ed37c41862fa -X-Openstack-Ironic-Api-Maximum-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 +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-86475654-a5b2-4cb5-afbe-d58daf4b8cfd +Openstack-Request-Id: req-c677702c-2d2f-40ad-b0d6-f226401a1135 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-86475654-a5b2-4cb5-afbe-d58daf4b8cfd +Openstack-Request-Id: req-c677702c-2d2f-40ad-b0d6-f226401a1135 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 {} +{"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-6e5375eb-205d-4142-9f63-4d299f6a5533 +Openstack-Request-Id: req-d0bb72af-3d2e-4e21-a73b-0593a2d91706 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +{"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-6e5375eb-205d-4142-9f63-4d299f6a5533 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-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-cddbddb5-c8ea-4b23-bfd2-b8767322e291 +Openstack-Request-Id: req-d0bb72af-3d2e-4e21-a73b-0593a2d91706 X-Openstack-Ironic-Api-Maximum-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-cddbddb5-c8ea-4b23-bfd2-b8767322e291 -X-Openstack-Ironic-Api-Maximum-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} +{"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-362a98ea-35af-4f13-b803-dacbe4f5a712 +Openstack-Request-Id: req-c61d5a89-9651-4040-9da6-96a970ba9885 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-362a98ea-35af-4f13-b803-dacbe4f5a712 +Openstack-Request-Id: req-c61d5a89-9651-4040-9da6-96a970ba9885 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +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-4a180a44-7daa-4b88-9fb5-c39480cf50fc +Openstack-Request-Id: req-35a217fe-1d96-4cd4-8a9a-ed6179c634a9 X-Openstack-Ironic-Api-Maximum-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-4a180a44-7daa-4b88-9fb5-c39480cf50fc +Openstack-Request-Id: req-35a217fe-1d96-4cd4-8a9a-ed6179c634a9 X-Openstack-Ironic-Api-Maximum-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} +{"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-d5c214ee-5a2b-4e20-8806-b35edeb7a659 +Openstack-Request-Id: req-463956ac-2cef-482b-b8b4-f258e33faed0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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:node:clear_maintenance\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d5c214ee-5a2b-4e20-8806-b35edeb7a659 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-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.conductor.test_utils.CacheVendorTestCase.test_failed -ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_failed ... ok -POST: /v1/heartbeat/6b01a8b4-dd00-4310-a509-46f0aa550faf {'callback_url': 'url'} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-45e7fc6d-5b35-4e4b-9fb1-62c82dc1064d +Openstack-Request-Id: req-463956ac-2cef-482b-b8b4-f258e33faed0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 6b01a8b4-dd00-4310-a509-46f0aa550faf 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-5840b483-80c2-4da3-a9c6-d05d62cf5b02 -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-e7f688a8-aa5c-48f1-9892-a78e28fae605 -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-2f914ae5-e333-493b-8b6e-c02bfd480d3b -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-0352287c-edc6-4b43-a8e0-17b868b0c282 -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-2e2b3a58-94c0-4c0a-a3a9-95738ca211b7 -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-481765e6-f68e-433d-9c77-efb484507d69 -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-a9eb4c1b-ce51-4076-af70-cb7594384431 -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 -Content-Type: application/json -Openstack-Request-Id: req-7d5aa044-535b-4048-a5a8-db3c2ded7f76 -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-72ab04f5-54b7-4725-9046-aa24a1b423f1 -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'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-3ae73eb9-c73f-459d-9bba-e7e6694c4414 -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/ea02fad3-1db8-41cd-b5ef-945c7fce66da {'callback_url': 'url'} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-20625070-073c-4c8b-9934-baf7cfb32193 -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}"} -DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 204 No Content -Openstack-Request-Id: req-f32b4b69-c500-4adc-bc45-30836c2e6718 -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-e2d740b3-2c09-48f5-bd54-9cfe6ed44116 -X-Openstack-Ironic-Api-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-d35f4767-2b80-426f-91d7-aa058cc6ea24 -X-Openstack-Ironic-Api-Maximum-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}"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} +{"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-9db1bcd6-5a56-419f-bf7d-d3010d0425b9 +Openstack-Request-Id: req-24c3b447-799b-4499-b522-a7a1e91ae729 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-9db1bcd6-5a56-419f-bf7d-d3010d0425b9 +Openstack-Request-Id: req-24c3b447-799b-4499-b522-a7a1e91ae729 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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-46cef84f-008a-4365-9747-6a6561e2ba32 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-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}"} -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.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.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.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.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.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.conductor.test_utils.FastTrackTestCase.test_is_fast_track -ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track ... 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.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.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.conductor.test_utils.CacheVendorTestCase.test_ok -ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_ok ... 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.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.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.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.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.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.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.conductor.test_utils.CacheVendorTestCase.test_unsupported -ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_unsupported ... 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.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.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.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.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.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_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.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.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.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.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.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.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.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.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 +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.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.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.FastTrackTestCase.test_is_fast_track_error_blocks ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_error_blocks ... 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.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.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_boot_validate_failure -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure ... ok -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-46cef84f-008a-4365-9747-6a6561e2ba32 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-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 +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 +"max-count" must be a positive value. +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.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_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_node.TestListNodes.test_get_owner_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_owner_fields ... 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.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_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.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_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.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.common.test_images.FsImageTestCase.test__generate_grub_cfg +ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_grub_cfg ... ok +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-c68d2edf-76fa-4a31-ae07-152c3561195f +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-7ebcff52-7f21-4d0d-9ff8-07bcdf7cb631 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:20.423626+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-07T17:33:20.423626+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.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_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.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.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.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 ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c68d2edf-76fa-4a31-ae07-152c3561195f +Openstack-Request-Id: req-f9108c2f-2d4b-4f47-8504-46a417275542 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 {} +{"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-7e211d9f-eae5-413f-96c8-aa3b0e6ea419 +Openstack-Request-Id: req-26e3bcc4-bf2b-412c-bdec-98c0fcf8d489 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-06T10:57:02.538809+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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 +{"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-7e211d9f-eae5-413f-96c8-aa3b0e6ea419 +Openstack-Request-Id: req-26e3bcc4-bf2b-412c-bdec-98c0fcf8d489 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-06T10:57:02.538809+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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_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.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.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.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_manager.ManagerTestProperties.test_driver_properties_fail -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fail ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:57:02.089487+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': '1886364d-62a7-45a9-adb4-001bb32cf2f8', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/1886364d-62a7-45a9-adb4-001bb32cf2f8', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1886364d-62a7-45a9-adb4-001bb32cf2f8', 'rel': 'bookmark'}]}, {'uuid': '95e16975-7c1d-4de7-adca-f012a23b79fb', 'address': '52:54:00:cf:2d:31', 'name': 'pg-1', 'links': [{'href': 'http://localhost/v1/portgroups/95e16975-7c1d-4de7-adca-f012a23b79fb', 'rel': 'self'}, {'href': 'http://localhost/portgroups/95e16975-7c1d-4de7-adca-f012a23b79fb', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups?limit=1 {} -GOT:{'portgroups': [{'uuid': '1886364d-62a7-45a9-adb4-001bb32cf2f8', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/1886364d-62a7-45a9-adb4-001bb32cf2f8', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1886364d-62a7-45a9-adb4-001bb32cf2f8', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=1&marker=1886364d-62a7-45a9-adb4-001bb32cf2f8'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:57:02.495187+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-06T10:57:02.604951+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 {} +{"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 -{"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.TestListNodes.test_ports_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource ... 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.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.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.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.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.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.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.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.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.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.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.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.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 -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-c1c938ed-031d-4558-bd2c-8977e8d615be +Openstack-Request-Id: req-78e64fe9-7d33-463a-92eb-9c9181d9cb6a 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-06T10:57:02.724704+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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\": \"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-c1c938ed-031d-4558-bd2c-8977e8d615be +Openstack-Request-Id: req-78e64fe9-7d33-463a-92eb-9c9181d9cb6a 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-06T10:57:02.724704+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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.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.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.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.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.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.network.test_noop.NoopInterfaceTestCase.test_port_changed -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_port_changed ... 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.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.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.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure ... 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.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.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.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.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_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.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed ... 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_manager.ManagerTestProperties.test_driver_properties_manual_management -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_manual_management ... 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.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.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.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.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.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.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes -ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes ... 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.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported -ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported ... 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: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0a3ae51f-3b55-400f-948a-98730fa69361 +Openstack-Request-Id: req-fdbdcfe9-4026-47d3-87cf-83c1f18eacd5 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-06T10:57:02.922460+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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 +{"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-0a3ae51f-3b55-400f-948a-98730fa69361 -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-06T10:57:02.922460+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-3dd8f0e9-154c-4d2a-87de-b6d23550e3a4 +Openstack-Request-Id: req-fdbdcfe9-4026-47d3-87cf-83c1f18eacd5 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": "42d7d06e-2515-47ed-b4a3-411c7defaf2f", "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.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.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.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_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_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.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.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.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_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive -ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive ... 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.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.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.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.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.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.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.NmiTestCase.test_inject_nmi_node_locked -ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_node_locked ... 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.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.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.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_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.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.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.conductor.test_manager.NmiTestCase.test_inject_nmi_not_implemented -ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_not_implemented ... ok -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait -GOT:Response: 404 Not Found +{"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-b9f9909d-f8e2-435f-b3b2-6df512dfd23e +Openstack-Request-Id: req-88974635-77c5-4d40-aea7-24890e920246 X-Openstack-Ironic-Api-Maximum-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: 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-80242975-6e54-41c9-a26c-856bfc9c60fc +Openstack-Request-Id: req-88974635-77c5-4d40-aea7-24890e920246 X-Openstack-Ironic-Api-Maximum-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 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-f3854373-d56b-4435-9bc9-34a65de5d643 +Openstack-Request-Id: req-d1646e0f-7d67-46cf-9e4e-4007129e3cdc X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d5fa6bd1-ffdc-4e39-a894-0546f410c8c6 +Openstack-Request-Id: req-d1646e0f-7d67-46cf-9e4e-4007129e3cdc X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +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-de623a2f-e04c-4ed1-afdb-9f6ac39f14fa +Openstack-Request-Id: req-81527486-b72a-4c8e-a903-b5249a300057 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"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-a22f749e-6021-4c0c-b34d-dfc91364be37 +Openstack-Request-Id: req-81527486-b72a-4c8e-a903-b5249a300057 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"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-b351a08b-4e93-4305-9009-cdb1dc81d929 +Openstack-Request-Id: req-1f7a63d1-ad46-4495-978f-f832b40ee7de X-Openstack-Ironic-Api-Maximum-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: 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-c95be740-2f8f-44a0-9e24-afb80153a1ad +Openstack-Request-Id: req-1f7a63d1-ad46-4495-978f-f832b40ee7de X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"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.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.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.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.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_node.TestListNodes.test_get_protected_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_protected_fields ... ok +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8458c477-3fa7-4814-b432-f45a7dc87758 +Openstack-Request-Id: req-533d0241-21bb-4d74-bd26-4e44481f4af3 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-02-07T17:33:20.361542+00:00", "updated_at": "2025-02-07T17:33:20.371119+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": "ef320bfd-fcae-4fa2-9894-a2f0de2fc756", "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": "ef320bfd-fcae-4fa2-9894-a2f0de2fc756", "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-4c8db7cd-c8a2-41ee-8e40-ff3a5dcb02d3 +Openstack-Request-Id: req-533d0241-21bb-4d74-bd26-4e44481f4af3 X-Openstack-Ironic-Api-Maximum-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 {} +{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-02-07T17:33:20.361542+00:00", "updated_at": "2025-02-07T17:33:20.371119+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": "ef320bfd-fcae-4fa2-9894-a2f0de2fc756", "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": "ef320bfd-fcae-4fa2-9894-a2f0de2fc756", "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-b4cb3c73-6f15-49fa-9bae-44eb4f6ccc6d +Openstack-Request-Id: req-1203c003-3867-48a7-ac12-3685c8fc4ce3 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a1d6d72c-4862-444e-8f53-49d0408f9deb +Openstack-Request-Id: req-1203c003-3867-48a7-ac12-3685c8fc4ce3 X-Openstack-Ironic-Api-Maximum-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'} +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-2b43af61-6faf-4ac2-a85a-32bf53ac43cd +Openstack-Request-Id: req-18b4097f-9f4f-497f-9fa1-eed0256e0a7a X-Openstack-Ironic-Api-Maximum-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'} -GOT:Response: 404 Not Found +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_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.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.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.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions ... 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 +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +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 +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.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.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_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_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] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +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.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.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.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.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.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_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:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-030883b6-e7a1-4ed2-b05e-28f396571191 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-e587fc67-4011-4f99-b133-89a638d8f433 X-Openstack-Ironic-Api-Maximum-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'} -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 -GOT:{'ports': [{'uuid': '8aec379c-7e3c-4c23-ad4e-1e073fb349a7', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/8aec379c-7e3c-4c23-ad4e-1e073fb349a7', 'rel': 'self'}, {'href': 'http://localhost/ports/8aec379c-7e3c-4c23-ad4e-1e073fb349a7', 'rel': 'bookmark'}]}, {'uuid': 'f788de2b-6518-46ef-a152-9d5d49464122', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/f788de2b-6518-46ef-a152-9d5d49464122', 'rel': 'self'}, {'href': 'http://localhost/ports/f788de2b-6518-46ef-a152-9d5d49464122', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports?limit=1 {} -GOT:{'ports': [{'uuid': '8aec379c-7e3c-4c23-ad4e-1e073fb349a7', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/8aec379c-7e3c-4c23-ad4e-1e073fb349a7', 'rel': 'self'}, {'href': 'http://localhost/ports/8aec379c-7e3c-4c23-ad4e-1e073fb349a7', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=8aec379c-7e3c-4c23-ad4e-1e073fb349a7'} -GET: /v1/nodes/123 123/ports {} -GOT:Response: 400 Bad Request -Content-Type: application/json -{"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for node: 123 123\"}"} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:20.590040+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-06T10:57:02.967746+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-92c077e1-2d19-4142-9068-1936b76ca8da -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 -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 -Content-Type: application/json -Openstack-Request-Id: req-68c13dc2-7e9b-402e-a1ac-247367a9c78e -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': '14218f3e-3e3b-438d-a7ea-a2c2ecca7c3a', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/14218f3e-3e3b-438d-a7ea-a2c2ecca7c3a', 'rel': 'self'}, {'href': 'http://localhost/nodes/14218f3e-3e3b-438d-a7ea-a2c2ecca7c3a', 'rel': 'bookmark'}]}, {'uuid': '1650e154-c339-42b2-af73-5c61a6425898', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1650e154-c339-42b2-af73-5c61a6425898', 'rel': 'self'}, {'href': 'http://localhost/nodes/1650e154-c339-42b2-af73-5c61a6425898', 'rel': 'bookmark'}]}, {'uuid': '93640070-174e-470b-87c5-a5ed092c5405', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/93640070-174e-470b-87c5-a5ed092c5405', 'rel': 'self'}, {'href': 'http://localhost/nodes/93640070-174e-470b-87c5-a5ed092c5405', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?sort_key=resource_class {} -GOT:{'nodes': [{'uuid': 'abfeefb3-b360-457a-b200-b7587261407e', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/abfeefb3-b360-457a-b200-b7587261407e', 'rel': 'self'}, {'href': 'http://localhost/nodes/abfeefb3-b360-457a-b200-b7587261407e', 'rel': 'bookmark'}]}, {'uuid': '81c5c23a-0761-4924-9008-21bb2c436904', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/81c5c23a-0761-4924-9008-21bb2c436904', 'rel': 'self'}, {'href': 'http://localhost/nodes/81c5c23a-0761-4924-9008-21bb2c436904', 'rel': 'bookmark'}]}, {'uuid': '0fca72b8-8534-436f-b643-36a65f5ce470', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/0fca72b8-8534-436f-b643-36a65f5ce470', 'rel': 'self'}, {'href': 'http://localhost/nodes/0fca72b8-8534-436f-b643-36a65f5ce470', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?sort_key=foo {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-0fb38543-cce4-4c75-88ca-cfe15310e317 -X-Openstack-Ironic-Api-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:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:20.590040+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-a9990758-de23-4baa-bd2d-c524c3f8a940 +Openstack-Request-Id: req-7349d959-2f78-4512-b943-8b0b224fe8a6 X-Openstack-Ironic-Api-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 {} +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-5417d856-24bf-424f-8749-10ce8f94459f +Openstack-Request-Id: req-7911b113-e43d-49cd-b4fd-855ff5eed7d3 X-Openstack-Ironic-Api-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 {} -GOT:Response: 400 Bad Request +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.TestListNodes.test_get_storage_interface_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields ... 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.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.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_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.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.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.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_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.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.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_allocations.AllocationsTestCase.test_take_over_conflict +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_conflict ... 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.TestPost.test_create_node_reserved_name +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_reserved_name ... 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 +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-3403c986-38a8-44d5-b3eb-52687cce44f8 +Openstack-Request-Id: req-7aff1f6c-81fd-4b57-86b7-5c9f5c76d780 X-Openstack-Ironic-Api-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 {} +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-fa5d6eb9-a3f0-43b4-9090-e61012995432 -X-Openstack-Ironic-Api-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.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.network.test_noop.NoopInterfaceTestCase.test_validate -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate ... ok -GOT:Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-0a584ca6-ef97-4b3d-a12c-6a902457867b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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-0a584ca6-ef97-4b3d-a12c-6a902457867b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-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: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-ae7f60c7-827a-4260-9677-998b5e4a921f -X-Openstack-Ironic-Api-Maximum-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-ae7f60c7-827a-4260-9677-998b5e4a921f +Openstack-Request-Id: req-7d36c060-584c-4299-8172-3661df59cfab X-Openstack-Ironic-Api-Maximum-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 -Content-Type: application/json -Openstack-Request-Id: req-5cca3476-ccca-4e1f-93ad-342bec159dfd -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-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-5cca3476-ccca-4e1f-93ad-342bec159dfd -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-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 -Content-Type: application/json -Openstack-Request-Id: req-ddb954d7-d222-4a2a-b154-379338b7bf5e -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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\": \"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-ddb954d7-d222-4a2a-b154-379338b7bf5e +Openstack-Request-Id: req-31595f97-d994-40b0-8232-10eb2fc8b8b7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +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-cf039f7d-864d-48fe-bfe9-4094f09a1063 +Openstack-Request-Id: req-84dc635c-923b-40e5-a4b9-ba98fd2f6e85 X-Openstack-Ironic-Api-Maximum-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.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-cf039f7d-864d-48fe-bfe9-4094f09a1063 +Openstack-Request-Id: req-e95d6285-5b17-4b92-b009-656c0deff570 X-Openstack-Ironic-Api-Maximum-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 +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-07T17:33:20.417964+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': '2025-02-07T17:33:20.572189+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-07T17:33:20.628697+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-07T17:33:20.628697+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-07T17:33:20.714156+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-07T17:33:20.714156+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-07T17:33:20.797003+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-07T17:33:20.797003+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 {} +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.db.test_allocations.AllocationsTestCase.test_take_over_success +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_success ... 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.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.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_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.TestListNodes.test_get_supported_boot_devices +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices ... 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.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.db.test_allocations.AllocationsTestCase.test_update_allocation +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation ... 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.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_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.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_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.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 +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-cbfe825b-8da6-4750-86a1-aff04e115365 +Openstack-Request-Id: req-4771c237-6035-4a84-9a03-5f04b39cfcdf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +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-cbfe825b-8da6-4750-86a1-aff04e115365 +Openstack-Request-Id: req-5add5cf1-06be-48fe-b07e-056a1f347191 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +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-cf4b0f06-d916-4b18-bbbe-c9631c8d0b96 +Openstack-Request-Id: req-fb60784d-074a-4f45-9a06-6eb2578b02e4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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.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-cf4b0f06-d916-4b18-bbbe-c9631c8d0b96 +Openstack-Request-Id: req-4741cea7-fc8d-474d-8576-61a89adb9aac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +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-d956609a-2667-4633-ab46-9767d21e2389 +Openstack-Request-Id: req-be6138c3-c6cb-4780-9c82-89f639271fc2 X-Openstack-Ironic-Api-Maximum-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}"} +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.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.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_node.TestPost.test_create_node_resource_class +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class ... ok ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d956609a-2667-4633-ab46-9767d21e2389 +Openstack-Request-Id: req-18b4097f-9f4f-497f-9fa1-eed0256e0a7a X-Openstack-Ironic-Api-Maximum-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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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 -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-3dd8f0e9-154c-4d2a-87de-b6d23550e3a4 -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": "42d7d06e-2515-47ed-b4a3-411c7defaf2f", "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 {} +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-9df6563c-5a2f-4df9-aa52-305b9118b6c7 +Openstack-Request-Id: req-c3d6334f-3e99-4768-b3e6-488caba58f3d 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-06T10:57:03.638676+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-06T10:57:03.642855+00:00", "updated_at": "2024-01-06T10:57:03.648754+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": "6071b8f4-a590-460e-9ee3-b81df4312a56", "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": "6071b8f4-a590-460e-9ee3-b81df4312a56", "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-06T10:57:03.668321+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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"}]}]} +{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-02-07T17:33:20.754932+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-9df6563c-5a2f-4df9-aa52-305b9118b6c7 +Openstack-Request-Id: req-c3d6334f-3e99-4768-b3e6-488caba58f3d 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-06T10:57:03.638676+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-06T10:57:03.642855+00:00", "updated_at": "2024-01-06T10:57:03.648754+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": "6071b8f4-a590-460e-9ee3-b81df4312a56", "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": "6071b8f4-a590-460e-9ee3-b81df4312a56", "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-06T10:57:03.668321+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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.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.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.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.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector ... 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.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.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.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.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.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.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.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.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.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate ... 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 - -API ACL Testing Path get /v1/nodes/detail -GET: /v1/nodes/detail {} +{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-02-07T17:33:20.754932+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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.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.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.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_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.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.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.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.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.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_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.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.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.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.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_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_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_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.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.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.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_molds.ConfigurationMoldTestCase.test_get_configuration_empty +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_empty ... 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.TestListPorts.test_links_public_url +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links_public_url ... 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.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.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.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_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.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.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_port.TestListPorts.test_list_detailed_with_deleted_node +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_detailed_with_deleted_node ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a86922a5-d92f-46cb-a486-0640eb925a23 +Openstack-Request-Id: req-5dc0a685-393b-49bf-a395-4c24fca17ca0 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-06T10:57:03.835401+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-06T10:57:03.842113+00:00", "updated_at": "2024-01-06T10:57:03.852199+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": "90bc7846-525b-4b31-b2a5-0f472bdf9129", "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": "90bc7846-525b-4b31-b2a5-0f472bdf9129", "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-06T10:57:03.882292+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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"}]}]} +{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-02-07T17:33:20.918175+00:00", "updated_at": "2025-02-07T17:33:20.927650+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": "1e05e84c-3065-4387-84f6-1e57909cbc5a", "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": "1e05e84c-3065-4387-84f6-1e57909cbc5a", "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 +** Redacted - requires baremetal:node:get:reservation permission. ** +driver_internal_info +{'content': '** Redacted - Requires baremetal:node:get:driver_internal_info permission. **'} +driver_info +{'content': '** Redacted - requires baremetal:node:get:driver_info permission. **'} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a86922a5-d92f-46cb-a486-0640eb925a23 +Openstack-Request-Id: req-5dc0a685-393b-49bf-a395-4c24fca17ca0 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-06T10:57:03.835401+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-06T10:57:03.842113+00:00", "updated_at": "2024-01-06T10:57:03.852199+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": "90bc7846-525b-4b31-b2a5-0f472bdf9129", "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": "90bc7846-525b-4b31-b2a5-0f472bdf9129", "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-06T10:57:03.882292+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped ... ok - +{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-02-07T17:33:20.918175+00:00", "updated_at": "2025-02-07T17:33:20.927650+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": "1e05e84c-3065-4387-84f6-1e57909cbc5a", "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": "1e05e84c-3065-4387-84f6-1e57909cbc5a", "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-dbc6f407-84df-4e8f-a6f0-2167fd15f9d3 -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-06T10:57:04.030580+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-06T10:57:04.034723+00:00", "updated_at": "2024-01-06T10:57:04.040534+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": "ffe53159-065b-4636-a732-3e34142b273f", "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": "ffe53159-065b-4636-a732-3e34142b273f", "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-06T10:57:04.062918+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-dbc6f407-84df-4e8f-a6f0-2167fd15f9d3 +Openstack-Request-Id: req-32b756ea-256d-4161-8e07-1d6f32274f04 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-06T10:57:04.030580+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-06T10:57:04.034723+00:00", "updated_at": "2024-01-06T10:57:04.040534+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": "ffe53159-065b-4636-a732-3e34142b273f", "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": "ffe53159-065b-4636-a732-3e34142b273f", "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-06T10:57:04.062918+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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.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.UpdateVolumeConnectorTestCase.test_update_volume_connector_type -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_type ... 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.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.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good ... 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.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.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.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker ... 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.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.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.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.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid ... 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.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.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.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked ... 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.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_notification_utils.ProvisionNotifyTestCase.test_emit_notification -ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification ... 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.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_manager.ManagerSyncLocalStateTestCase.test_not_mapped -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped ... 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.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.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_notification_utils.ProvisionNotifyTestCase.test_mask_secrets -ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets ... 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.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.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.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.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.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.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_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.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.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_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 - -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-1083dce1-ac3f-4543-8e87-7448f14360db -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-06T10:57:04.243018+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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 +{"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-02-07T17:33:21.061833+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-07T17:33:21.072631+00:00", "updated_at": "2025-02-07T17:33:21.082238+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": "3f5146dc-4822-460a-aa8b-7786fc2c3ff6", "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": "3f5146dc-4822-460a-aa8b-7786fc2c3ff6", "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 +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-1083dce1-ac3f-4543-8e87-7448f14360db +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-5137ad9a-7505-41b6-bfc1-9e740085340d 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-06T10:57:04.243018+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:20.938532+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 {} -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.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.UpdatePortTestCase.test_update_port -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port ... 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.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.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.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.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.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.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.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.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.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.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.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.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.UpdatePortTestCase.test_update_port_address_maintenance -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_maintenance ... ok -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-34c12c1e-6c9b-47de-9502-9023edd93d38 -X-Openstack-Ironic-Api-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 -Content-Type: application/json -Openstack-Request-Id: req-44d6602d-3087-4dfc-b40d-bdf06d5dc31c -X-Openstack-Ironic-Api-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 {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-2c79d759-223e-4d0c-89e6-e93dce3d527a -X-Openstack-Ironic-Api-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:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:20.938532+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-a1acfaff-12fa-4d15-b1d5-b2acd7481027 +Openstack-Request-Id: req-002ae6e9-a5c3-405d-99cd-1524b6187618 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.20 +X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -GET: /v1/nodes?associated=false {} -GOT:{'nodes': [{'uuid': '758fb440-e3ae-4f0d-8fb6-cb3a00b5cd88', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/758fb440-e3ae-4f0d-8fb6-cb3a00b5cd88', 'rel': 'self'}, {'href': 'http://localhost/nodes/758fb440-e3ae-4f0d-8fb6-cb3a00b5cd88', 'rel': 'bookmark'}]}, {'uuid': '523a02fc-ec32-485c-aee2-e0d67fb2f6bf', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/523a02fc-ec32-485c-aee2-e0d67fb2f6bf', 'rel': 'self'}, {'href': 'http://localhost/nodes/523a02fc-ec32-485c-aee2-e0d67fb2f6bf', 'rel': 'bookmark'}]}, {'uuid': 'cca547a8-4789-4295-8586-636e0ec4c99c', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/cca547a8-4789-4295-8586-636e0ec4c99c', 'rel': 'self'}, {'href': 'http://localhost/nodes/cca547a8-4789-4295-8586-636e0ec4c99c', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?associated=FALSE {} -GOT:{'nodes': [{'uuid': '758fb440-e3ae-4f0d-8fb6-cb3a00b5cd88', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/758fb440-e3ae-4f0d-8fb6-cb3a00b5cd88', 'rel': 'self'}, {'href': 'http://localhost/nodes/758fb440-e3ae-4f0d-8fb6-cb3a00b5cd88', 'rel': 'bookmark'}]}, {'uuid': '523a02fc-ec32-485c-aee2-e0d67fb2f6bf', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/523a02fc-ec32-485c-aee2-e0d67fb2f6bf', 'rel': 'self'}, {'href': 'http://localhost/nodes/523a02fc-ec32-485c-aee2-e0d67fb2f6bf', 'rel': 'bookmark'}]}, {'uuid': 'cca547a8-4789-4295-8586-636e0ec4c99c', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/cca547a8-4789-4295-8586-636e0ec4c99c', 'rel': 'self'}, {'href': 'http://localhost/nodes/cca547a8-4789-4295-8586-636e0ec4c99c', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?associated=False&limit=2 {} -GOT:{'nodes': [{'uuid': '6b704cf9-356c-48bb-8de3-485c13fe4e8c', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/6b704cf9-356c-48bb-8de3-485c13fe4e8c', 'rel': 'self'}, {'href': 'http://localhost/nodes/6b704cf9-356c-48bb-8de3-485c13fe4e8c', 'rel': 'bookmark'}]}, {'uuid': '93f68317-8ad4-4164-b59a-1b4bcf1a1a50', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/93f68317-8ad4-4164-b59a-1b4bcf1a1a50', 'rel': 'self'}, {'href': 'http://localhost/nodes/93f68317-8ad4-4164-b59a-1b4bcf1a1a50', '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=93f68317-8ad4-4164-b59a-1b4bcf1a1a50'} -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-51b51e6b-e7b4-44af-9661-4509e04f5d73 +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.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.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 +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-215a5af2-b458-446b-bd2a-bfd0b1c37f82 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': 'dafa4e92-ccb8-4dec-9362-c9b571ce3515', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/dafa4e92-ccb8-4dec-9362-c9b571ce3515', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/dafa4e92-ccb8-4dec-9362-c9b571ce3515', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'e237e33e-fdbd-4c0c-993c-966c7ca5130e', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/e237e33e-fdbd-4c0c-993c-966c7ca5130e', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/e237e33e-fdbd-4c0c-993c-966c7ca5130e', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors?limit=1 {} -GOT:{'connectors': [{'uuid': 'dafa4e92-ccb8-4dec-9362-c9b571ce3515', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/dafa4e92-ccb8-4dec-9362-c9b571ce3515', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/dafa4e92-ccb8-4dec-9362-c9b571ce3515', '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=dafa4e92-ccb8-4dec-9362-c9b571ce3515'} -GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/connectors {} -GOT:Response: 404 Not Found +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-d7137fe3-87b1-4b20-bd42-f141d8b96399 +Openstack-Request-Id: req-2344b100-174c-47f5-8457-0e5138bfea12 X-Openstack-Ironic-Api-Maximum-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 {} +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 -{"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 -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-2a59477d-99bd-4a37-a231-662a55f91153 +Openstack-Request-Id: req-21ff2edc-1afc-483f-aa10-ca1244e3ea68 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-06T10:57:04.470922+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-2a59477d-99bd-4a37-a231-662a55f91153 +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-69c151e6-7ac3-47ae-a674-cdf9b7ab22cb 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-06T10:57:04.470922+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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_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.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.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_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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked ... ok -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-59873a4b-1006-4423-aa08-732e78d00edd +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-b23085cf-5464-4af0-8efd-8da1134c306e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-59873a4b-1006-4423-aa08-732e78d00edd +X-Openstack-Ironic-Api-Version: 1.76 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} +GOT:Response: 204 No Content +Openstack-Request-Id: req-a7685d11-4f31-4098-b254-3ebad644e5ff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 -GOT:Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-db3f64e9-0637-413e-bef5-567d6ed2f2ee +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-17061c5a-389c-4cf7-a2d0-2d6030c793b8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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.5 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-db3f64e9-0637-413e-bef5-567d6ed2f2ee +Openstack-Request-Id: req-1bc3ec65-f94a-45dd-be6e-b204bf25de3a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 -Content-Type: application/json -Openstack-Request-Id: req-0cda806d-ffcc-48b9-b17a-d2b38a3c0685 +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-409fb2fa-3a95-433e-87a7-d90afc54e609 X-Openstack-Ironic-Api-Maximum-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 + +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 -Openstack-Request-Id: req-0cda806d-ffcc-48b9-b17a-d2b38a3c0685 +Openstack-Request-Id: req-59e9024a-e91d-4d54-a640-c4d899c854c5 X-Openstack-Ironic-Api-Maximum-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 -Content-Type: application/json -Openstack-Request-Id: req-6350a048-3dca-458a-a2a2-2c2fdc44d8e7 +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-7260dd32-2195-4a09-ae5e-7c72e12def07 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +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-6350a048-3dca-458a-a2a2-2c2fdc44d8e7 +Openstack-Request-Id: req-6c667fac-018c-4976-abc8-bd9d86dcb74d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 -GOT:Response: 503 Service Unavailable +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-372de32f-ccdf-40e7-8f0a-54121592571f +Openstack-Request-Id: req-7ab16f74-d03e-4d30-b458-76c469efcbab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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\": \"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-372de32f-ccdf-40e7-8f0a-54121592571f +Openstack-Request-Id: req-cdb7ef63-5311-486b-9318-2c107a0570c2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +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 Content-Type: application/json -Openstack-Request-Id: req-6e9bc0b1-661d-4bf4-a3d2-d5872732865c +Openstack-Request-Id: req-edf76ff7-40e5-46aa-8eba-3b8df9af88c0 X-Openstack-Ironic-Api-Maximum-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-6e9bc0b1-661d-4bf4-a3d2-d5872732865c +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-296e13d2-43d9-418c-a10c-e82dafd87052 X-Openstack-Ironic-Api-Maximum-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-72e93776-cbd3-473b-9921-b548eb4982b0 +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-84ee9324-2a66-4112-b5ed-ef9af05c094b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-72e93776-cbd3-473b-9921-b548eb4982b0 +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-559b318a-1ff3-4ba4-b34a-1e3d3ffbb272 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +X-Openstack-Ironic-Api-Version: 1.1 + +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-cebbaa5d-fc6d-435b-abce-eb7b83eefebc +Openstack-Request-Id: req-4edc2c60-28be-4734-bcca-2eb4674307d1 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"]} +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'} +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.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_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.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_molds.ConfigurationMoldTestCase.test_get_configuration_http_error +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_error ... 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.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.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.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.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_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.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.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.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.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.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.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_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_list_with_deleted_node +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_node ... ok ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-cebbaa5d-fc6d-435b-abce-eb7b83eefebc -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-b4d0ca3c-561c-400b-84be-d7076a291645 +Openstack-Request-Id: req-32b756ea-256d-4161-8e07-1d6f32274f04 X-Openstack-Ironic-Api-Maximum-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.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.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.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_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.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.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.DoNodeAdoptionTestCase.test_heartbeat_with_agent_version -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_with_agent_version ... 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.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.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.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.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.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.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.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.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.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_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.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.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.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.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_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.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.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.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.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.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.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.drac.test_inspect.DracInspectionTestCase.test_get_properties -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_get_properties ... 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.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.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.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.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.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 -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 +{"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-02-07T17:33:21.061833+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-07T17:33:21.072631+00:00", "updated_at": "2025-02-07T17:33:21.082238+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": "3f5146dc-4822-460a-aa8b-7786fc2c3ff6", "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": "3f5146dc-4822-460a-aa8b-7786fc2c3ff6", "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.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.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 +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:20.353719+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-07T17:33:20.434472+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-5e6a8c6f-3e60-4fb8-b8e5-c3befa898784 +Openstack-Request-Id: req-2dea90e7-2741-46c1-8657-e92586ad6af8 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': '2024-01-06T10:57:04.954141+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': '80ffe1b1-617f-40f7-ab42-c25094a50b8c', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/80ffe1b1-617f-40f7-ab42-c25094a50b8c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/80ffe1b1-617f-40f7-ab42-c25094a50b8c', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '8ce699df-706a-4ebf-866c-8fcc4daa3003', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/8ce699df-706a-4ebf-866c-8fcc4daa3003', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/8ce699df-706a-4ebf-866c-8fcc4daa3003', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets?limit=1 {} -GOT:{'targets': [{'uuid': '80ffe1b1-617f-40f7-ab42-c25094a50b8c', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/80ffe1b1-617f-40f7-ab42-c25094a50b8c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/80ffe1b1-617f-40f7-ab42-c25094a50b8c', '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=80ffe1b1-617f-40f7-ab42-c25094a50b8c'} -GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/targets {} -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-a2282d9b-ed96-4b8b-94f2-42ee25825be2 +Openstack-Request-Id: req-19304282-41ed-4a68-8118-d51716b990e5 X-Openstack-Ironic-Api-Maximum-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 {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -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.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.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.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_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.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_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 GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-887c94b3-0529-4515-98ac-6540afdcbc62 +Openstack-Request-Id: req-a7878577-8765-4ad4-b53f-000d0e868ff4 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"}]} +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:21.146192+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 {} -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.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.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_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.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware ... 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.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.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.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.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.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.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 -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-c19068c0-2bc1-4e6f-8515-b198adad1b5d -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-06T10:57:04.660153+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-c19068c0-2bc1-4e6f-8515-b198adad1b5d -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-06T10:57:04.660153+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-631c31d1-8d7e-40df-a90b-c012b88eb315 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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-631c31d1-8d7e-40df-a90b-c012b88eb315 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-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 +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:21.146192+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-0caa18ed-b729-4e8d-8ed5-35e52541cbf4 +Openstack-Request-Id: req-23b7d787-dd65-4ac5-b11d-77d1bf677ac2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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.45 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/nodes {'uuid': '95ea9a54-afb7-4b7d-ac50-b767d175acae', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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_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.common.test_rpc.TestUtils.test_get_sensors_notifier +ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier ... 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 +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-0caa18ed-b729-4e8d-8ed5-35e52541cbf4 +Location: http://localhost/v1/nodes/95ea9a54-afb7-4b7d-ac50-b767d175acae +Openstack-Request-Id: req-c1feae7f-e76d-4718-bc8b-4b205ba73c86 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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': '/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 -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.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.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.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.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.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_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.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.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node ... 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'} +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "95ea9a54-afb7-4b7d-ac50-b767d175acae", "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/95ea9a54-afb7-4b7d-ac50-b767d175acae", "rel": "self"}, {"href": "http://localhost/nodes/95ea9a54-afb7-4b7d-ac50-b767d175acae", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/95ea9a54-afb7-4b7d-ac50-b767d175acae/ports", "rel": "self"}, {"href": "http://localhost/nodes/95ea9a54-afb7-4b7d-ac50-b767d175acae/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/95ea9a54-afb7-4b7d-ac50-b767d175acae/states", "rel": "self"}, {"href": "http://localhost/nodes/95ea9a54-afb7-4b7d-ac50-b767d175acae/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/95ea9a54-afb7-4b7d-ac50-b767d175acae/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/95ea9a54-afb7-4b7d-ac50-b767d175acae/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/95ea9a54-afb7-4b7d-ac50-b767d175acae/volume", "rel": "self"}, {"href": "http://localhost/nodes/95ea9a54-afb7-4b7d-ac50-b767d175acae/volume", "rel": "bookmark"}]} +GET: /v1/nodes/95ea9a54-afb7-4b7d-ac50-b767d175acae {} +GOT:{'uuid': '95ea9a54-afb7-4b7d-ac50-b767d175acae', '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/95ea9a54-afb7-4b7d-ac50-b767d175acae', 'rel': 'self'}, {'href': 'http://localhost/nodes/95ea9a54-afb7-4b7d-ac50-b767d175acae', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/95ea9a54-afb7-4b7d-ac50-b767d175acae/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/95ea9a54-afb7-4b7d-ac50-b767d175acae/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/95ea9a54-afb7-4b7d-ac50-b767d175acae/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/95ea9a54-afb7-4b7d-ac50-b767d175acae/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/95ea9a54-afb7-4b7d-ac50-b767d175acae/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/95ea9a54-afb7-4b7d-ac50-b767d175acae/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/95ea9a54-afb7-4b7d-ac50-b767d175acae/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/95ea9a54-afb7-4b7d-ac50-b767d175acae/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': '0c6c9fe9-d127-4259-a316-d03882f918fc', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-7cdf0039-edd6-4a90-956a-939bfddc4410 +Location: http://localhost/v1/nodes/0c6c9fe9-d127-4259-a316-d03882f918fc +Openstack-Request-Id: req-c1aa7036-eb4f-461f-ab45-12f5e169e81c 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-06T10:57:05.562683+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': '2024-01-06T10:57:05.562683+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.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.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.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.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_without_version -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_without_version ... 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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits ... 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.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.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_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.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.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.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.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.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.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.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.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_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.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_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_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.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.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.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.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.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.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_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.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.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_manager.UpdatePortgroupTestCase.test_update_portgroup -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup ... 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.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.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.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.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.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_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.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.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.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.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.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.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_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_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.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.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_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.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_rpcapi.RPCAPITestCase.test_change_node_secure_boot -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_secure_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.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.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean ... 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.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.UpdatePortgroupTestCase.test_update_portgroup_failure -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure ... 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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy ... 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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation ... 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_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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_create_node -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_node ... 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.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_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_rpcapi.RPCAPITestCase.test_create_port -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port ... 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.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.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.test_console_utils.ConsoleUtilsTestCase.test__stop_console -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console ... 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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_destroy_allocation -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_allocation ... ok -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "0c6c9fe9-d127-4259-a316-d03882f918fc", "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/0c6c9fe9-d127-4259-a316-d03882f918fc", "rel": "self"}, {"href": "http://localhost/nodes/0c6c9fe9-d127-4259-a316-d03882f918fc", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/0c6c9fe9-d127-4259-a316-d03882f918fc/ports", "rel": "self"}, {"href": "http://localhost/nodes/0c6c9fe9-d127-4259-a316-d03882f918fc/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0c6c9fe9-d127-4259-a316-d03882f918fc/states", "rel": "self"}, {"href": "http://localhost/nodes/0c6c9fe9-d127-4259-a316-d03882f918fc/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0c6c9fe9-d127-4259-a316-d03882f918fc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0c6c9fe9-d127-4259-a316-d03882f918fc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0c6c9fe9-d127-4259-a316-d03882f918fc/volume", "rel": "self"}, {"href": "http://localhost/nodes/0c6c9fe9-d127-4259-a316-d03882f918fc/volume", "rel": "bookmark"}]} +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.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.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.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.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.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.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_images.FsImageTestCase.test_create_vfat_image +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image ... 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.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.common.test_images.FsImageTestCase.test_create_vfat_image_dd_fails +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_dd_fails ... ok +GET: /v1/nodes/0c6c9fe9-d127-4259-a316-d03882f918fc {} +GOT:{'uuid': '0c6c9fe9-d127-4259-a316-d03882f918fc', '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/0c6c9fe9-d127-4259-a316-d03882f918fc', 'rel': 'self'}, {'href': 'http://localhost/nodes/0c6c9fe9-d127-4259-a316-d03882f918fc', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/0c6c9fe9-d127-4259-a316-d03882f918fc/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/0c6c9fe9-d127-4259-a316-d03882f918fc/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/0c6c9fe9-d127-4259-a316-d03882f918fc/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/0c6c9fe9-d127-4259-a316-d03882f918fc/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/0c6c9fe9-d127-4259-a316-d03882f918fc/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/0c6c9fe9-d127-4259-a316-d03882f918fc/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/0c6c9fe9-d127-4259-a316-d03882f918fc/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/0c6c9fe9-d127-4259-a316-d03882f918fc/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': '4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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 -Openstack-Request-Id: req-0f2a2277-115a-4037-88d5-6f00527ccf8e +Location: http://localhost/v1/nodes/4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4 +Openstack-Request-Id: req-5fff7363-35b0-48c0-9137-e585f4f9341b 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 +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4", "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/4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4", "rel": "self"}, {"href": "http://localhost/nodes/4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4/ports", "rel": "self"}, {"href": "http://localhost/nodes/4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4/states", "rel": "self"}, {"href": "http://localhost/nodes/4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4/volume", "rel": "self"}, {"href": "http://localhost/nodes/4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4/volume", "rel": "bookmark"}]} +GET: /v1/nodes/4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4 {} +GOT:{'uuid': '4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4', '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/4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4', 'rel': 'self'}, {'href': 'http://localhost/nodes/4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/4d62fdc1-c67d-4ada-aab3-e4ad542d8cd4/volume', 'rel': 'bookmark'}]} +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.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.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T17:33:20.861690+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-07T17:33:20.861690+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-07T17:33:20.931918+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-07T17:33:20.981937+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-07T17:33:20.981937+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/21dc6209-7cca-4a01-a081-541a1537518b {} +GOT:{'uuid': '21dc6209-7cca-4a01-a081-541a1537518b', 'created_at': '2025-02-07T17:33:21.047579+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/21dc6209-7cca-4a01-a081-541a1537518b', 'rel': 'self'}, {'href': 'http://localhost/ports/21dc6209-7cca-4a01-a081-541a1537518b', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/ports/21dc6209-7cca-4a01-a081-541a1537518b {} +GOT:{'uuid': '21dc6209-7cca-4a01-a081-541a1537518b', 'created_at': '2025-02-07T17:33:21.047579+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/21dc6209-7cca-4a01-a081-541a1537518b', 'rel': 'self'}, {'href': 'http://localhost/ports/21dc6209-7cca-4a01-a081-541a1537518b', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /ports/21dc6209-7cca-4a01-a081-541a1537518b {} +GOT:{'uuid': '21dc6209-7cca-4a01-a081-541a1537518b', 'created_at': '2025-02-07T17:33:21.047579+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/21dc6209-7cca-4a01-a081-541a1537518b', 'rel': 'self'}, {'href': 'http://localhost/ports/21dc6209-7cca-4a01-a081-541a1537518b', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/ports/0ddd6876-3c92-4cd8-bb0b-e082f4791773 {} +GOT:{'uuid': '0ddd6876-3c92-4cd8-bb0b-e082f4791773', 'created_at': '2025-02-07T17:33:21.120969+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://foo/v1/ports/0ddd6876-3c92-4cd8-bb0b-e082f4791773', 'rel': 'self'}, {'href': 'http://foo/ports/0ddd6876-3c92-4cd8-bb0b-e082f4791773', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/ports/0ddd6876-3c92-4cd8-bb0b-e082f4791773 {} +GOT:{'uuid': '0ddd6876-3c92-4cd8-bb0b-e082f4791773', 'created_at': '2025-02-07T17:33:21.120969+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://foo/v1/ports/0ddd6876-3c92-4cd8-bb0b-e082f4791773', 'rel': 'self'}, {'href': 'http://foo/ports/0ddd6876-3c92-4cd8-bb0b-e082f4791773', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /ports/0ddd6876-3c92-4cd8-bb0b-e082f4791773 {} +GOT:{'uuid': '0ddd6876-3c92-4cd8-bb0b-e082f4791773', 'created_at': '2025-02-07T17:33:21.120969+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://foo/v1/ports/0ddd6876-3c92-4cd8-bb0b-e082f4791773', 'rel': 'self'}, {'href': 'http://foo/ports/0ddd6876-3c92-4cd8-bb0b-e082f4791773', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/ports/detail {} +GOT:{'ports': [{'uuid': '6d1b6f1e-660a-4739-9d26-b220ec4e97f1', 'created_at': '2025-02-07T17:33:21.207382+00:00', 'updated_at': None, 'address': '66:44:55:33:11:22', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/6d1b6f1e-660a-4739-9d26-b220ec4e97f1', 'rel': 'self'}, {'href': 'http://localhost/ports/6d1b6f1e-660a-4739-9d26-b220ec4e97f1', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/ports {} +GOT:Response: 403 Forbidden Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-27d4d2a4-5fe5-4df7-8e22-43c774787f85 +Openstack-Request-Id: req-63069560-0907-4e9f-bbf6-c33e3725b946 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': '7125a201-a87d-4d83-802d-7d54e8d408aa', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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': {}} -GOT:Response: 201 Created +{"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 -Location: http://localhost/v1/nodes/7125a201-a87d-4d83-802d-7d54e8d408aa -Openstack-Request-Id: req-6a79bad8-147a-46f2-8aaf-e3d69f09756e +Openstack-Request-Id: req-71a7d45e-e178-4477-adde-bdca53feabae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "7125a201-a87d-4d83-802d-7d54e8d408aa", "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/7125a201-a87d-4d83-802d-7d54e8d408aa", "rel": "self"}, {"href": "http://localhost/nodes/7125a201-a87d-4d83-802d-7d54e8d408aa", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7125a201-a87d-4d83-802d-7d54e8d408aa/ports", "rel": "self"}, {"href": "http://localhost/nodes/7125a201-a87d-4d83-802d-7d54e8d408aa/ports", "rel": "bookmark"}]} -GET: /v1/nodes/7125a201-a87d-4d83-802d-7d54e8d408aa {} -GOT:{'uuid': '7125a201-a87d-4d83-802d-7d54e8d408aa', '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/7125a201-a87d-4d83-802d-7d54e8d408aa', 'rel': 'self'}, {'href': 'http://localhost/nodes/7125a201-a87d-4d83-802d-7d54e8d408aa', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/7125a201-a87d-4d83-802d-7d54e8d408aa/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/7125a201-a87d-4d83-802d-7d54e8d408aa/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 +{"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-07T17:33:21.442257+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 {} +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.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.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.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.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails ... ok +POST: /v1/nodes {'uuid': '76fb40a8-c540-4e1e-bd94-725c3c398ac9', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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 -Openstack-Request-Id: req-5c4568e4-3a85-499a-a55e-d19903c6ced9 +Location: http://localhost/v1/nodes/76fb40a8-c540-4e1e-bd94-725c3c398ac9 +Openstack-Request-Id: req-47ad9276-77fb-4e78-80ba-e1f3e7e96ed4 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.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.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.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.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_create_node_default_state_enroll -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_enroll ... 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.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node ... 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.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 -ACL Test GOT Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "76fb40a8-c540-4e1e-bd94-725c3c398ac9", "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/76fb40a8-c540-4e1e-bd94-725c3c398ac9", "rel": "self"}, {"href": "http://localhost/nodes/76fb40a8-c540-4e1e-bd94-725c3c398ac9", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/76fb40a8-c540-4e1e-bd94-725c3c398ac9/ports", "rel": "self"}, {"href": "http://localhost/nodes/76fb40a8-c540-4e1e-bd94-725c3c398ac9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/76fb40a8-c540-4e1e-bd94-725c3c398ac9/states", "rel": "self"}, {"href": "http://localhost/nodes/76fb40a8-c540-4e1e-bd94-725c3c398ac9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/76fb40a8-c540-4e1e-bd94-725c3c398ac9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/76fb40a8-c540-4e1e-bd94-725c3c398ac9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/76fb40a8-c540-4e1e-bd94-725c3c398ac9/volume", "rel": "self"}, {"href": "http://localhost/nodes/76fb40a8-c540-4e1e-bd94-725c3c398ac9/volume", "rel": "bookmark"}]} +GET: /v1/nodes/76fb40a8-c540-4e1e-bd94-725c3c398ac9 {} +GOT:{'uuid': '76fb40a8-c540-4e1e-bd94-725c3c398ac9', '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/76fb40a8-c540-4e1e-bd94-725c3c398ac9', 'rel': 'self'}, {'href': 'http://localhost/nodes/76fb40a8-c540-4e1e-bd94-725c3c398ac9', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/76fb40a8-c540-4e1e-bd94-725c3c398ac9/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/76fb40a8-c540-4e1e-bd94-725c3c398ac9/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/76fb40a8-c540-4e1e-bd94-725c3c398ac9/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/76fb40a8-c540-4e1e-bd94-725c3c398ac9/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/76fb40a8-c540-4e1e-bd94-725c3c398ac9/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/76fb40a8-c540-4e1e-bd94-725c3c398ac9/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/76fb40a8-c540-4e1e-bd94-725c3c398ac9/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/76fb40a8-c540-4e1e-bd94-725c3c398ac9/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': 'f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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_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.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.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.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.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.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.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.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.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 +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-b4d0ca3c-561c-400b-84be-d7076a291645 +Location: http://localhost/v1/nodes/f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65 +Openstack-Request-Id: req-599d4298-f3db-429f-9aa0-0c256c266b07 X-Openstack-Ironic-Api-Maximum-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 +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65", "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/f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65", "rel": "self"}, {"href": "http://localhost/nodes/f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65/ports", "rel": "self"}, {"href": "http://localhost/nodes/f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65/states", "rel": "self"}, {"href": "http://localhost/nodes/f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65/volume", "rel": "self"}, {"href": "http://localhost/nodes/f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65/volume", "rel": "bookmark"}]} +GET: /v1/nodes/f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65 {} +GOT:{'uuid': 'f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65', '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/f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65', 'rel': 'self'}, {'href': 'http://localhost/nodes/f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/f65b01e4-09fe-4f3e-b3a6-08b3e1f0bb65/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': '7319f3ca-4493-4c59-ad01-3b8a8fe3253f', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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 -Openstack-Request-Id: req-67b04594-3101-4f8a-9df3-bd4f34f3800e +Location: http://localhost/v1/nodes/7319f3ca-4493-4c59-ad01-3b8a8fe3253f +Openstack-Request-Id: req-15048bd5-7368-452d-8e26-9de88d5dee62 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 +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "7319f3ca-4493-4c59-ad01-3b8a8fe3253f", "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/7319f3ca-4493-4c59-ad01-3b8a8fe3253f", "rel": "self"}, {"href": "http://localhost/nodes/7319f3ca-4493-4c59-ad01-3b8a8fe3253f", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/7319f3ca-4493-4c59-ad01-3b8a8fe3253f/ports", "rel": "self"}, {"href": "http://localhost/nodes/7319f3ca-4493-4c59-ad01-3b8a8fe3253f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7319f3ca-4493-4c59-ad01-3b8a8fe3253f/states", "rel": "self"}, {"href": "http://localhost/nodes/7319f3ca-4493-4c59-ad01-3b8a8fe3253f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7319f3ca-4493-4c59-ad01-3b8a8fe3253f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7319f3ca-4493-4c59-ad01-3b8a8fe3253f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7319f3ca-4493-4c59-ad01-3b8a8fe3253f/volume", "rel": "self"}, {"href": "http://localhost/nodes/7319f3ca-4493-4c59-ad01-3b8a8fe3253f/volume", "rel": "bookmark"}]} +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.api.controllers.v1.test_port.TestListPorts.test_one +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one ... 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_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_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.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.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.common.test_rpc.TestUtils.test_init_globals_notifications_enabled +ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_enabled ... ok +GET: /v1/nodes/7319f3ca-4493-4c59-ad01-3b8a8fe3253f {} +GOT:{'uuid': '7319f3ca-4493-4c59-ad01-3b8a8fe3253f', '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/7319f3ca-4493-4c59-ad01-3b8a8fe3253f', 'rel': 'self'}, {'href': 'http://localhost/nodes/7319f3ca-4493-4c59-ad01-3b8a8fe3253f', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/7319f3ca-4493-4c59-ad01-3b8a8fe3253f/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/7319f3ca-4493-4c59-ad01-3b8a8fe3253f/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/7319f3ca-4493-4c59-ad01-3b8a8fe3253f/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/7319f3ca-4493-4c59-ad01-3b8a8fe3253f/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/7319f3ca-4493-4c59-ad01-3b8a8fe3253f/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/7319f3ca-4493-4c59-ad01-3b8a8fe3253f/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/7319f3ca-4493-4c59-ad01-3b8a8fe3253f/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/7319f3ca-4493-4c59-ad01-3b8a8fe3253f/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': '332c78f1-2938-42ac-ab7d-55d06ece1b79', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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 -Openstack-Request-Id: req-67b04594-3101-4f8a-9df3-bd4f34f3800e +Location: http://localhost/v1/nodes/332c78f1-2938-42ac-ab7d-55d06ece1b79 +Openstack-Request-Id: req-25e2180b-66c1-47cd-92ef-9cce585700a5 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']} +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "332c78f1-2938-42ac-ab7d-55d06ece1b79", "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/332c78f1-2938-42ac-ab7d-55d06ece1b79", "rel": "self"}, {"href": "http://localhost/nodes/332c78f1-2938-42ac-ab7d-55d06ece1b79", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/332c78f1-2938-42ac-ab7d-55d06ece1b79/ports", "rel": "self"}, {"href": "http://localhost/nodes/332c78f1-2938-42ac-ab7d-55d06ece1b79/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/332c78f1-2938-42ac-ab7d-55d06ece1b79/states", "rel": "self"}, {"href": "http://localhost/nodes/332c78f1-2938-42ac-ab7d-55d06ece1b79/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/332c78f1-2938-42ac-ab7d-55d06ece1b79/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/332c78f1-2938-42ac-ab7d-55d06ece1b79/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/332c78f1-2938-42ac-ab7d-55d06ece1b79/volume", "rel": "self"}, {"href": "http://localhost/nodes/332c78f1-2938-42ac-ab7d-55d06ece1b79/volume", "rel": "bookmark"}]} +GET: /v1/nodes/332c78f1-2938-42ac-ab7d-55d06ece1b79 {} +GOT:{'uuid': '332c78f1-2938-42ac-ab7d-55d06ece1b79', '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/332c78f1-2938-42ac-ab7d-55d06ece1b79', 'rel': 'self'}, {'href': 'http://localhost/nodes/332c78f1-2938-42ac-ab7d-55d06ece1b79', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/332c78f1-2938-42ac-ab7d-55d06ece1b79/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/332c78f1-2938-42ac-ab7d-55d06ece1b79/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/332c78f1-2938-42ac-ab7d-55d06ece1b79/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/332c78f1-2938-42ac-ab7d-55d06ece1b79/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/332c78f1-2938-42ac-ab7d-55d06ece1b79/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/332c78f1-2938-42ac-ab7d-55d06ece1b79/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/332c78f1-2938-42ac-ab7d-55d06ece1b79/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/332c78f1-2938-42ac-ab7d-55d06ece1b79/volume', 'rel': 'bookmark'}]} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-a8d56433-bb37-4b28-bf09-e66e00193109 +Openstack-Request-Id: req-30df3384-25f3-4d83-903d-c0c523da79d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-a8d56433-bb37-4b28-bf09-e66e00193109 +Openstack-Request-Id: req-30df3384-25f3-4d83-903d-c0c523da79d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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-04f77645-0fbf-4a42-8083-540749daad5d -X-Openstack-Ironic-Api-Maximum-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-04f77645-0fbf-4a42-8083-540749daad5d -X-Openstack-Ironic-Api-Maximum-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']} +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-33e783a8-379a-4cb7-9ee8-7a26050014ae +Openstack-Request-Id: req-f0a695af-7048-448c-b339-789b2858a996 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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:set_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-33e783a8-379a-4cb7-9ee8-7a26050014ae +Openstack-Request-Id: req-f0a695af-7048-448c-b339-789b2858a996 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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-79953b77-2af6-4144-8a1f-3b7fccf323f3 +Openstack-Request-Id: req-99405bf1-2f8c-4043-a9d3-31d980ae5d54 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-79953b77-2af6-4144-8a1f-3b7fccf323f3 +Openstack-Request-Id: req-99405bf1-2f8c-4043-a9d3-31d980ae5d54 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/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-971be994-2711-4a41-959b-c559a12542cb +Openstack-Request-Id: req-97179846-c0bf-470d-aa3d-827cfcafc413 X-Openstack-Ironic-Api-Maximum-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-971be994-2711-4a41-959b-c559a12542cb +Openstack-Request-Id: req-97179846-c0bf-470d-aa3d-827cfcafc413 X-Openstack-Ironic-Api-Maximum-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/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-8bae471a-4ebb-42cc-8a29-3d9ebf395b4a +Openstack-Request-Id: req-8126426a-a3ee-4240-9057-473d2a591333 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8bae471a-4ebb-42cc-8a29-3d9ebf395b4a +Openstack-Request-Id: req-8126426a-a3ee-4240-9057-473d2a591333 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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_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-4ac7da25-6924-493e-873e-3d178c80345e +Openstack-Request-Id: req-f8439e4a-b6f0-4b27-8cf1-f6f2ab74d1be X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-4ac7da25-6924-493e-873e-3d178c80345e +Openstack-Request-Id: req-f8439e4a-b6f0-4b27-8cf1-f6f2ab74d1be X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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_rpcapi.RPCAPITestCase.test_destroy_portgroup -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_portgroup ... 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.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.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 -GOT:Response: 404 Not Found +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-4d5f27cc-f0d1-4f6c-a214-a76d54dee208 +Openstack-Request-Id: req-a8dd02d2-6b09-4818-89fa-73ee830415ef X-Openstack-Ironic-Api-Maximum-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 -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-83697bd4-dfe7-44e7-a7dd-b043e04ae14a +Openstack-Request-Id: req-a8dd02d2-6b09-4818-89fa-73ee830415ef X-Openstack-Ironic-Api-Maximum-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 -GOT:Response: 404 Not Found +{"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-2f85ca11-694a-4903-a1e8-3cdb9fa72cd6 +Openstack-Request-Id: req-9d23e514-14a3-4eb2-a00c-e3976d424610 X-Openstack-Ironic-Api-Maximum-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 -GOT:Response: 404 Not Found +{"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-404db030-7702-4c68-b648-ad69ad9a9a79 +Openstack-Request-Id: req-9d23e514-14a3-4eb2-a00c-e3976d424610 X-Openstack-Ironic-Api-Maximum-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 {} -GOT:Response: 404 Not Found +{"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.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.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.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_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_images.IronicImagesTestCase.test_converted_size_estimate_custom +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_custom ... ok +POST: /v1/nodes {'uuid': '24dd4652-fdbb-4100-bf8c-615d610aa30d', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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-d21aa0d5-e4eb-40eb-a368-4e06e5ec4827 +Location: http://localhost/v1/nodes/24dd4652-fdbb-4100-bf8c-615d610aa30d +Openstack-Request-Id: req-391cafdc-7230-4c97-89d1-75e94a65be45 X-Openstack-Ironic-Api-Maximum-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 {} +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "24dd4652-fdbb-4100-bf8c-615d610aa30d", "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/24dd4652-fdbb-4100-bf8c-615d610aa30d", "rel": "self"}, {"href": "http://localhost/nodes/24dd4652-fdbb-4100-bf8c-615d610aa30d", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/24dd4652-fdbb-4100-bf8c-615d610aa30d/ports", "rel": "self"}, {"href": "http://localhost/nodes/24dd4652-fdbb-4100-bf8c-615d610aa30d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/24dd4652-fdbb-4100-bf8c-615d610aa30d/states", "rel": "self"}, {"href": "http://localhost/nodes/24dd4652-fdbb-4100-bf8c-615d610aa30d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/24dd4652-fdbb-4100-bf8c-615d610aa30d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/24dd4652-fdbb-4100-bf8c-615d610aa30d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/24dd4652-fdbb-4100-bf8c-615d610aa30d/volume", "rel": "self"}, {"href": "http://localhost/nodes/24dd4652-fdbb-4100-bf8c-615d610aa30d/volume", "rel": "bookmark"}]} +GET: /v1/nodes/24dd4652-fdbb-4100-bf8c-615d610aa30d {} +GOT:{'uuid': '24dd4652-fdbb-4100-bf8c-615d610aa30d', '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/24dd4652-fdbb-4100-bf8c-615d610aa30d', 'rel': 'self'}, {'href': 'http://localhost/nodes/24dd4652-fdbb-4100-bf8c-615d610aa30d', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/24dd4652-fdbb-4100-bf8c-615d610aa30d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/24dd4652-fdbb-4100-bf8c-615d610aa30d/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/24dd4652-fdbb-4100-bf8c-615d610aa30d/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/24dd4652-fdbb-4100-bf8c-615d610aa30d/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/24dd4652-fdbb-4100-bf8c-615d610aa30d/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/24dd4652-fdbb-4100-bf8c-615d610aa30d/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/24dd4652-fdbb-4100-bf8c-615d610aa30d/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/24dd4652-fdbb-4100-bf8c-615d610aa30d/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': 'b54e3ba6-ec30-4b5a-9525-1be1932f102e', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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.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.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.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.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.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_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 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f52b8f0c-5c81-4361-b85c-6845a4983ab7 +Openstack-Request-Id: req-6a74e1f5-b0b1-4843-8597-95d8663c5579 X-Openstack-Ironic-Api-Maximum-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 {} -GOT:Response: 404 Not Found +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-dd246cdc-c071-4b2f-b55f-6d4c7246e0ed +Openstack-Request-Id: req-6a74e1f5-b0b1-4843-8597-95d8663c5579 X-Openstack-Ironic-Api-Maximum-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 -Content-Type: application/json -Openstack-Request-Id: req-a6a3b9aa-5e3b-4256-92d2-f700f5e356ea -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-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 {} +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-16008083-6d45-480a-b87b-b290512b3afd +Openstack-Request-Id: req-500015e0-2e85-4096-b20d-8918cc8d0ab5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-dff241ba-daaf-48c8-af2d-25a67812d8b2 +Openstack-Request-Id: req-500015e0-2e85-4096-b20d-8918cc8d0ab5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-b988cf9b-2ba3-4713-bc5d-3e84b8d3d740 +Openstack-Request-Id: req-7feaa247-3102-4948-87b9-80920cc95320 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-9ef29995-c53d-4a80-a959-b2b537370ce1 +Openstack-Request-Id: req-7feaa247-3102-4948-87b9-80920cc95320 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-04263920-282a-41cd-a106-92f4364bb059 +Openstack-Request-Id: req-37ecdf38-f3cc-43bd-bb8c-6d5eeca02921 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-301c3fa3-f412-4afe-9eb0-16615ac860c5 +Openstack-Request-Id: req-37ecdf38-f3cc-43bd-bb8c-6d5eeca02921 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 {} +{"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-0f9372eb-b709-4b69-bef4-13045d20e771 +Openstack-Request-Id: req-c02e97a2-b22a-49fd-bdaa-413f7a05e4d2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 {} -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.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.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.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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target ... 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.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean ... 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.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.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor ... ok -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-07134e2f-0eb4-4c91-81ea-d7e2538f3408 -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": "2024-01-06T10:57:06.267074+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-06T10:57:06.267074+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'} -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-c75dfe7a-8dda-4b2b-b3af-31b348c656c7 -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": "2024-01-06T10:57:06.399083+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-06T10:57:06.399083+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-06T10:57:06.399083+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.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.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.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.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.dhcp.test_neutron.TestNeutron.test_get_ip_addresses -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses ... 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.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.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue ... 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 -GOT:Response: 201 Created +{"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 -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-07f5b62c-2e88-43b4-989b-c44a4f8fafe1 +Openstack-Request-Id: req-c02e97a2-b22a-49fd-bdaa-413f7a05e4d2 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-06T10:57:06.501743+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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:57:06.501743+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.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.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_ignore_online -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_ignore_online ... 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'} -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.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.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue ... 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_rpcapi.RPCAPITestCase.test_driver_vendor_passthru -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru ... 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.db.test_conductor.DbConductorTestCase.test_get_offline_conductors -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors ... 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.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device ... 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 +{"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-44ba44d6-671e-4fa8-97d9-368901a4de75 +Openstack-Request-Id: req-245b6696-9d07-4076-8072-7463bf4b2dc2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-44ba44d6-671e-4fa8-97d9-368901a4de75 +Openstack-Request-Id: req-245b6696-9d07-4076-8072-7463bf4b2dc2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +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-fc6d85cd-fc13-4c62-92a5-e2856557ee42 +Openstack-Request-Id: req-647bf1ef-1883-4fab-a0c9-3d98b67191af X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-fc6d85cd-fc13-4c62-92a5-e2856557ee42 +Openstack-Request-Id: req-647bf1ef-1883-4fab-a0c9-3d98b67191af X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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'}}] +{"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-c7d32082-4c0c-4f45-8e81-0ebc13d3e483 +Openstack-Request-Id: req-94cd65c4-ebe2-491e-ab3e-f21afe760537 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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_provision_state\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c7d32082-4c0c-4f45-8e81-0ebc13d3e483 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-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 -Content-Type: application/json -Openstack-Request-Id: req-44336601-d3e3-4842-8026-3133aeaf1444 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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-44336601-d3e3-4842-8026-3133aeaf1444 +Openstack-Request-Id: req-94cd65c4-ebe2-491e-ab3e-f21afe760537 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"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.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_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.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch ... 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_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.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.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.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.common.test_images.IronicImagesTestCase.test_download_size +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size ... 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.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.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.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.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_images.IronicImagesTestCase.test_fetch_image_service +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4b666c97-f7e3-4e28-911a-24d09364b058 +Openstack-Request-Id: req-67660c41-202c-4762-8cbf-7f05ae5bc1ee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-02-07T17:33:21.296033+00:00", "updated_at": "2025-02-07T17:33:21.305255+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": "e1daaf10-39e3-4aec-9b84-2237a749f717", "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": "e1daaf10-39e3-4aec-9b84-2237a749f717", "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-4b666c97-f7e3-4e28-911a-24d09364b058 +Openstack-Request-Id: req-67660c41-202c-4762-8cbf-7f05ae5bc1ee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-02-07T17:33:21.296033+00:00", "updated_at": "2025-02-07T17:33:21.305255+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": "e1daaf10-39e3-4aec-9b84-2237a749f717", "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": "e1daaf10-39e3-4aec-9b84-2237a749f717", "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-648bcf0c-b626-46b4-9758-043f4e0a5593 +Openstack-Request-Id: req-13f7efa8-e4ae-42fd-8030-bd83195f6244 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"nodes": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-648bcf0c-b626-46b4-9758-043f4e0a5593 +Openstack-Request-Id: req-13f7efa8-e4ae-42fd-8030-bd83195f6244 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 {} +{"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-a3c170d3-1932-47e2-9524-d259d15b279b +Openstack-Request-Id: req-c13ba564-da41-45fc-a730-0eedf2e452c1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-a3c170d3-1932-47e2-9524-d259d15b279b +Openstack-Request-Id: req-c13ba564-da41-45fc-a730-0eedf2e452c1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +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.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 +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-29d713df-8984-48ff-82d6-058211a8c01c +Location: http://localhost/v1/nodes/b54e3ba6-ec30-4b5a-9525-1be1932f102e +Openstack-Request-Id: req-f0c2e8f1-cf23-4670-a0d9-7ec8fdb9edac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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.40 +{"uuid": "b54e3ba6-ec30-4b5a-9525-1be1932f102e", "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/b54e3ba6-ec30-4b5a-9525-1be1932f102e", "rel": "self"}, {"href": "http://localhost/nodes/b54e3ba6-ec30-4b5a-9525-1be1932f102e", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/b54e3ba6-ec30-4b5a-9525-1be1932f102e/ports", "rel": "self"}, {"href": "http://localhost/nodes/b54e3ba6-ec30-4b5a-9525-1be1932f102e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b54e3ba6-ec30-4b5a-9525-1be1932f102e/states", "rel": "self"}, {"href": "http://localhost/nodes/b54e3ba6-ec30-4b5a-9525-1be1932f102e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b54e3ba6-ec30-4b5a-9525-1be1932f102e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b54e3ba6-ec30-4b5a-9525-1be1932f102e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b54e3ba6-ec30-4b5a-9525-1be1932f102e/volume", "rel": "self"}, {"href": "http://localhost/nodes/b54e3ba6-ec30-4b5a-9525-1be1932f102e/volume", "rel": "bookmark"}]} +GET: /v1/nodes/b54e3ba6-ec30-4b5a-9525-1be1932f102e {} +GOT:{'uuid': 'b54e3ba6-ec30-4b5a-9525-1be1932f102e', '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/b54e3ba6-ec30-4b5a-9525-1be1932f102e', 'rel': 'self'}, {'href': 'http://localhost/nodes/b54e3ba6-ec30-4b5a-9525-1be1932f102e', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/b54e3ba6-ec30-4b5a-9525-1be1932f102e/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b54e3ba6-ec30-4b5a-9525-1be1932f102e/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/b54e3ba6-ec30-4b5a-9525-1be1932f102e/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/b54e3ba6-ec30-4b5a-9525-1be1932f102e/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/b54e3ba6-ec30-4b5a-9525-1be1932f102e/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/b54e3ba6-ec30-4b5a-9525-1be1932f102e/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/b54e3ba6-ec30-4b5a-9525-1be1932f102e/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/b54e3ba6-ec30-4b5a-9525-1be1932f102e/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': '7a7b387c-b561-44e0-8851-52b356325755', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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-29d713df-8984-48ff-82d6-058211a8c01c +Location: http://localhost/v1/nodes/7a7b387c-b561-44e0-8851-52b356325755 +Openstack-Request-Id: req-d3aa6710-4f85-4fb7-9f0e-c19bc6d37442 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state ... 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.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_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.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.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_rpcapi.RPCAPITestCase.test_get_console_information -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information ... 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.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.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails ... 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 -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "7a7b387c-b561-44e0-8851-52b356325755", "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/7a7b387c-b561-44e0-8851-52b356325755", "rel": "self"}, {"href": "http://localhost/nodes/7a7b387c-b561-44e0-8851-52b356325755", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/7a7b387c-b561-44e0-8851-52b356325755/ports", "rel": "self"}, {"href": "http://localhost/nodes/7a7b387c-b561-44e0-8851-52b356325755/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7a7b387c-b561-44e0-8851-52b356325755/states", "rel": "self"}, {"href": "http://localhost/nodes/7a7b387c-b561-44e0-8851-52b356325755/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7a7b387c-b561-44e0-8851-52b356325755/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7a7b387c-b561-44e0-8851-52b356325755/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7a7b387c-b561-44e0-8851-52b356325755/volume", "rel": "self"}, {"href": "http://localhost/nodes/7a7b387c-b561-44e0-8851-52b356325755/volume", "rel": "bookmark"}]} +GET: /v1/nodes/7a7b387c-b561-44e0-8851-52b356325755 {} +GOT:{'uuid': '7a7b387c-b561-44e0-8851-52b356325755', '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/7a7b387c-b561-44e0-8851-52b356325755', 'rel': 'self'}, {'href': 'http://localhost/nodes/7a7b387c-b561-44e0-8851-52b356325755', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/7a7b387c-b561-44e0-8851-52b356325755/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/7a7b387c-b561-44e0-8851-52b356325755/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/7a7b387c-b561-44e0-8851-52b356325755/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/7a7b387c-b561-44e0-8851-52b356325755/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/7a7b387c-b561-44e0-8851-52b356325755/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/7a7b387c-b561-44e0-8851-52b356325755/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/7a7b387c-b561-44e0-8851-52b356325755/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/7a7b387c-b561-44e0-8851-52b356325755/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': 'eb630ba1-9e23-4239-b4e6-8896c3b5f0ec', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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-ea9ff28b-0379-4a90-8ce0-dfdb09626eea +Location: http://localhost/v1/nodes/eb630ba1-9e23-4239-b4e6-8896c3b5f0ec +Openstack-Request-Id: req-ff166d22-d2dd-408d-b27b-3f64f7094753 X-Openstack-Ironic-Api-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'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "eb630ba1-9e23-4239-b4e6-8896c3b5f0ec", "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/eb630ba1-9e23-4239-b4e6-8896c3b5f0ec", "rel": "self"}, {"href": "http://localhost/nodes/eb630ba1-9e23-4239-b4e6-8896c3b5f0ec", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/eb630ba1-9e23-4239-b4e6-8896c3b5f0ec/ports", "rel": "self"}, {"href": "http://localhost/nodes/eb630ba1-9e23-4239-b4e6-8896c3b5f0ec/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/eb630ba1-9e23-4239-b4e6-8896c3b5f0ec/states", "rel": "self"}, {"href": "http://localhost/nodes/eb630ba1-9e23-4239-b4e6-8896c3b5f0ec/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/eb630ba1-9e23-4239-b4e6-8896c3b5f0ec/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/eb630ba1-9e23-4239-b4e6-8896c3b5f0ec/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/eb630ba1-9e23-4239-b4e6-8896c3b5f0ec/volume", "rel": "self"}, {"href": "http://localhost/nodes/eb630ba1-9e23-4239-b4e6-8896c3b5f0ec/volume", "rel": "bookmark"}]} +GET: /v1/nodes/eb630ba1-9e23-4239-b4e6-8896c3b5f0ec {} +GOT:{'uuid': 'eb630ba1-9e23-4239-b4e6-8896c3b5f0ec', '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/eb630ba1-9e23-4239-b4e6-8896c3b5f0ec', 'rel': 'self'}, {'href': 'http://localhost/nodes/eb630ba1-9e23-4239-b4e6-8896c3b5f0ec', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/eb630ba1-9e23-4239-b4e6-8896c3b5f0ec/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/eb630ba1-9e23-4239-b4e6-8896c3b5f0ec/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/eb630ba1-9e23-4239-b4e6-8896c3b5f0ec/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/eb630ba1-9e23-4239-b4e6-8896c3b5f0ec/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/eb630ba1-9e23-4239-b4e6-8896c3b5f0ec/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/eb630ba1-9e23-4239-b4e6-8896c3b5f0ec/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/eb630ba1-9e23-4239-b4e6-8896c3b5f0ec/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/eb630ba1-9e23-4239-b4e6-8896c3b5f0ec/volume', 'rel': 'bookmark'}]} +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.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.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises ... ok +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-4994b54a-8907-4a3b-a55c-c0360ed959a7 +Openstack-Request-Id: req-f8e29c96-ff38-4160-bca7-7a62bcfff94c 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-06T10:57:06.668745+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-06T10:57:06.668745+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.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties ... 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.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.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.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.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_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.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.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.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_rpcapi.RPCAPITestCase.test_get_indicator_state -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_indicator_state ... 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.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_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.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.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.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_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_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.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.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.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.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.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.db.test_conductor.DbConductorTestCase.test_touch_conductor -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor ... 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.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.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.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.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_098_nodes_vifs_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_098_nodes_vifs_get_member ... 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 +{"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 -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-5bad4dd9-20fc-420f-997b-4f7b4f607e3e +Openstack-Request-Id: req-aba23089-bc92-4a91-83a0-9fa1c64ccd5d 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"}]} +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': 'dc48fd1c-37b5-464e-8600-e3c1ddf16981'} 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:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:21.749541+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-07T17:33:21.749541+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': '2025-02-07T17:33:21.850195+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.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.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_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.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.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.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_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 +POST: /v1/nodes {'uuid': '5f71025a-f473-4a78-82b3-ca7e2950a79e', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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 -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-3c235c65-e464-4a27-a45a-c387efc74774 +Location: http://localhost/v1/nodes/5f71025a-f473-4a78-82b3-ca7e2950a79e +Openstack-Request-Id: req-4afffb27-e9f7-4232-968a-87a2a4c44cb0 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": "2024-01-06T10:57:06.843466+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-06T10:57:06.843466+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.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.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.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_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.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.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.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_get_supported_indicators -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_indicators ... 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.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_rpcapi.RPCAPITestCase.test_get_topic_doesnt_cache -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_doesnt_cache ... 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.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.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.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.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.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.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.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.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.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.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_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.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.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_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.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_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.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate ... ok -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "5f71025a-f473-4a78-82b3-ca7e2950a79e", "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/5f71025a-f473-4a78-82b3-ca7e2950a79e", "rel": "self"}, {"href": "http://localhost/nodes/5f71025a-f473-4a78-82b3-ca7e2950a79e", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/5f71025a-f473-4a78-82b3-ca7e2950a79e/ports", "rel": "self"}, {"href": "http://localhost/nodes/5f71025a-f473-4a78-82b3-ca7e2950a79e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5f71025a-f473-4a78-82b3-ca7e2950a79e/states", "rel": "self"}, {"href": "http://localhost/nodes/5f71025a-f473-4a78-82b3-ca7e2950a79e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5f71025a-f473-4a78-82b3-ca7e2950a79e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5f71025a-f473-4a78-82b3-ca7e2950a79e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5f71025a-f473-4a78-82b3-ca7e2950a79e/volume", "rel": "self"}, {"href": "http://localhost/nodes/5f71025a-f473-4a78-82b3-ca7e2950a79e/volume", "rel": "bookmark"}]} +GET: /v1/nodes/5f71025a-f473-4a78-82b3-ca7e2950a79e {} +GOT:{'uuid': '5f71025a-f473-4a78-82b3-ca7e2950a79e', '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/5f71025a-f473-4a78-82b3-ca7e2950a79e', 'rel': 'self'}, {'href': 'http://localhost/nodes/5f71025a-f473-4a78-82b3-ca7e2950a79e', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/5f71025a-f473-4a78-82b3-ca7e2950a79e/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/5f71025a-f473-4a78-82b3-ca7e2950a79e/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/5f71025a-f473-4a78-82b3-ca7e2950a79e/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/5f71025a-f473-4a78-82b3-ca7e2950a79e/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/5f71025a-f473-4a78-82b3-ca7e2950a79e/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/5f71025a-f473-4a78-82b3-ca7e2950a79e/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/5f71025a-f473-4a78-82b3-ca7e2950a79e/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/5f71025a-f473-4a78-82b3-ca7e2950a79e/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-ff51082e-80be-4000-86c7-7c9242e5c4cc +Openstack-Request-Id: req-ea4fb4f7-4140-45ee-83a6-efaefcfb1dbe X-Openstack-Ironic-Api-Maximum-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.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-ff51082e-80be-4000-86c7-7c9242e5c4cc +Openstack-Request-Id: req-744ed999-8fef-4b48-a7c4-f38a35a70a81 X-Openstack-Ironic-Api-Maximum-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 +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.IronicImagesTestCase.test_image_show_image_service +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_image_service ... 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.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.common.test_utils.TempFilesTestCase.test_check_dir_ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok ... 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.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.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_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_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_molds.ConfigurationMoldTestCase.test_save_configuration_swift +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift ... 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.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.common.test_utils.TempFilesTestCase.test_is_memory_insufficient +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient ... 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.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.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_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_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.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.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.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_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_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_molds.ConfigurationMoldTestCase.test_save_configuration_swift_noauth +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift_noauth ... 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.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.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.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.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.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_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.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_utils.TempFilesTestCase.test_is_memory_insufficient_warning_only +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_warning_only ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:21.850195+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-07T17:33:21.957941+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-07T17:33:21.957941+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-07T17:33:22.074812+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-07T17:33:22.074812+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.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.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.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.common.test_network.GetPhysnetsByPortgroupID.test_empty +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_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.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.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_utils.TempFilesTestCase.test_tempdir +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir ... 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.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.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.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.common.test_utils.TempFilesTestCase.test_tempdir_mocked +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked ... 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_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_utils.TestApiUtils.test_is_path_removed_success +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_success ... ok +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-72e1aa2a-eda0-4765-b26f-864091c0bded +Openstack-Request-Id: req-4c0b24cb-e50c-407e-83c9-83611a0b15b4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +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-72e1aa2a-eda0-4765-b26f-864091c0bded +Openstack-Request-Id: req-d1c7618c-e9c5-49cf-9e35-5a00d8a52822 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +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-b8179f3d-73ef-4020-b3a0-a97c806ba4de +Openstack-Request-Id: req-e1cae184-b579-4d57-b167-42d26ae81cb1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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.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'} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-b8179f3d-73ef-4020-b3a0-a97c806ba4de +Openstack-Request-Id: req-2be970c7-163e-411a-a0a5-08c9d4817b10 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +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'} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-831b35df-3dcc-4375-acf2-532082eb173b +Openstack-Request-Id: req-f1837909-93a5-4ec8-8140-9ea0cec83bc0 X-Openstack-Ironic-Api-Maximum-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.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 -Openstack-Request-Id: req-831b35df-3dcc-4375-acf2-532082eb173b +Openstack-Request-Id: req-c3934f62-9730-4340-880a-032ec983475a X-Openstack-Ironic-Api-Maximum-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 +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-2c953f4e-ec79-46c3-bfcf-1aa1d7cb2f40 +Openstack-Request-Id: req-f3f34b07-3bd1-46ea-9014-44d38ac9fd2a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-2c953f4e-ec79-46c3-bfcf-1aa1d7cb2f40 +Openstack-Request-Id: req-a50883b0-c07e-4b53-bf42-b8ed9e31a35d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +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_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_content_type +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_type ... 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.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.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.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.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.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.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_is_path_updated_subpath_success +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_subpath_success ... 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.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port ... ok +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:22.167221+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-07T17:33:22.167221+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-07T17:33:22.286652+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-07T17:33:22.286652+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-07T17:33:22.443300+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.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 +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.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.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.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target +ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target ... 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.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.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.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.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.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_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.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 +GOT:{'ports': [{'uuid': 'a7b26f1d-ee01-412e-a669-64d797173de0', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/a7b26f1d-ee01-412e-a669-64d797173de0', 'rel': 'self'}, {'href': 'http://localhost/ports/a7b26f1d-ee01-412e-a669-64d797173de0', 'rel': 'bookmark'}]}, {'uuid': '65c9baa6-cc18-488c-aaab-7aaf3ea7b766', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/65c9baa6-cc18-488c-aaab-7aaf3ea7b766', 'rel': 'self'}, {'href': 'http://localhost/ports/65c9baa6-cc18-488c-aaab-7aaf3ea7b766', 'rel': 'bookmark'}]}, {'uuid': '93700ef7-624b-4faf-a7b8-1301598431d2', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/93700ef7-624b-4faf-a7b8-1301598431d2', 'rel': 'self'}, {'href': 'http://localhost/ports/93700ef7-624b-4faf-a7b8-1301598431d2', 'rel': 'bookmark'}]}, {'uuid': '20c4b808-61ad-4300-ae9e-6606a977c779', 'address': '52:54:00:cf:2d:33', 'links': [{'href': 'http://localhost/v1/ports/20c4b808-61ad-4300-ae9e-6606a977c779', 'rel': 'self'}, {'href': 'http://localhost/ports/20c4b808-61ad-4300-ae9e-6606a977c779', 'rel': 'bookmark'}]}, {'uuid': '6cc929a6-c83e-4036-9e9f-29345f609314', 'address': '52:54:00:cf:2d:34', 'links': [{'href': 'http://localhost/v1/ports/6cc929a6-c83e-4036-9e9f-29345f609314', 'rel': 'self'}, {'href': 'http://localhost/ports/6cc929a6-c83e-4036-9e9f-29345f609314', 'rel': 'bookmark'}]}]} +GET: /v1/ports {} +GOT:{'ports': [{'uuid': 'f4ccc1b1-6cd5-4b1a-beae-c7ea5ae7d055', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/f4ccc1b1-6cd5-4b1a-beae-c7ea5ae7d055', 'rel': 'self'}, {'href': 'http://localhost/ports/f4ccc1b1-6cd5-4b1a-beae-c7ea5ae7d055', 'rel': 'bookmark'}]}, {'uuid': 'dd07cc13-cada-4573-bfd0-b9fe5466bb7e', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/dd07cc13-cada-4573-bfd0-b9fe5466bb7e', 'rel': 'self'}, {'href': 'http://localhost/ports/dd07cc13-cada-4573-bfd0-b9fe5466bb7e', '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': 'b49818b1-71bd-4be9-ba34-6b4c0edf3284', 'address': 'aa:bb:cc:dd:ee:f1', 'links': [{'href': 'http://localhost/v1/ports/b49818b1-71bd-4be9-ba34-6b4c0edf3284', 'rel': 'self'}, {'href': 'http://localhost/ports/b49818b1-71bd-4be9-ba34-6b4c0edf3284', 'rel': 'bookmark'}]}]} +GET: /v1/ports?address=invalid-mac-format {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-0e73a53a-1ff2-477a-92ba-3b629d2cbbc3 +Openstack-Request-Id: req-b5b8489d-05bf-46f7-84d9-0bc0562041df X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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\": \"Expected valid MAC address for address: invalid-mac-format\", \"debuginfo\": null}"} +GET: /v1/ports?address=aa:bb:cc:dd:ee:f1 {} +GOT:{'ports': [{'uuid': 'fe7d3bb3-a12e-41fb-a9cd-41b853639fdd', 'address': 'aa:bb:cc:dd:ee:f1', 'links': [{'href': 'http://localhost/v1/ports/fe7d3bb3-a12e-41fb-a9cd-41b853639fdd', 'rel': 'self'}, {'href': 'http://localhost/ports/fe7d3bb3-a12e-41fb-a9cd-41b853639fdd', '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-0e73a53a-1ff2-477a-92ba-3b629d2cbbc3 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-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 {} +{"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 -Openstack-Request-Id: req-c1044f61-e91b-4ce0-b019-713f9cf4362c +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/ports?sort_key=uuid {} +GOT:{'ports': [{'uuid': '4a049a2a-ca9f-40aa-90d0-a1c4a5999826', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/4a049a2a-ca9f-40aa-90d0-a1c4a5999826', 'rel': 'self'}, {'href': 'http://localhost/ports/4a049a2a-ca9f-40aa-90d0-a1c4a5999826', 'rel': 'bookmark'}]}, {'uuid': 'ad8f88fe-2caf-485f-b66b-e48790bc5040', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/ad8f88fe-2caf-485f-b66b-e48790bc5040', 'rel': 'self'}, {'href': 'http://localhost/ports/ad8f88fe-2caf-485f-b66b-e48790bc5040', 'rel': 'bookmark'}]}, {'uuid': 'f7ffccac-a8f1-46fc-980e-f90c45ca0c58', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/f7ffccac-a8f1-46fc-980e-f90c45ca0c58', 'rel': 'self'}, {'href': 'http://localhost/ports/f7ffccac-a8f1-46fc-980e-f90c45ca0c58', 'rel': 'bookmark'}]}]} +GET: /v1/ports?sort_key=pxe_enabled {} +GOT:{'ports': [{'uuid': '5079efdb-ffb6-4fa2-9feb-c09c940083c8', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/5079efdb-ffb6-4fa2-9feb-c09c940083c8', 'rel': 'self'}, {'href': 'http://localhost/ports/5079efdb-ffb6-4fa2-9feb-c09c940083c8', 'rel': 'bookmark'}]}, {'uuid': '42c09767-b9f8-42fd-bd65-1a7a2f380584', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/42c09767-b9f8-42fd-bd65-1a7a2f380584', 'rel': 'self'}, {'href': 'http://localhost/ports/42c09767-b9f8-42fd-bd65-1a7a2f380584', 'rel': 'bookmark'}]}]} +GET: /v1/ports?sort_key=foo {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-faa7f78a-5c96-4c58-a048-e3b4160074d6 X-Openstack-Ironic-Api-Maximum-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\": \"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-c1044f61-e91b-4ce0-b019-713f9cf4362c +Openstack-Request-Id: req-ac921298-7f3c-4e78-b92b-31b36a5d9162 X-Openstack-Ironic-Api-Maximum-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\": \"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-47cc2292-8bf6-4a55-9fc6-a9b68318d5ef +Openstack-Request-Id: req-1e5c1140-dd6a-41e1-bb32-e6b35d546441 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-47cc2292-8bf6-4a55-9fc6-a9b68318d5ef +Openstack-Request-Id: req-5883fbcf-902c-411b-9cc3-fb72d8c6bdfe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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'} -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-8ec428ff-9e19-4de1-91d6-eee18b3e7e3f +Openstack-Request-Id: req-198d93ce-17d1-412f-a218-64de78c44c36 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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_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.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.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.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.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.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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver ... 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'} +X-Openstack-Ironic-Api-Version: 1.18 +{"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'} +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.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.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.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.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.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_patched_validate_with_schema +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patched_validate_with_schema ... 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.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.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.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone +ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone ... 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_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.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.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.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.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.common.test_network.GetPhysnetsByPortgroupID.test_two_ports +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports ... 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.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:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:22.443300+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-07T17:33:22.626388+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-07T17:33:22.626388+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-07T17:33:22.748872+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_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 +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.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-9712ffad-20d9-4050-84bc-ec9cc8ecfd73 -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"}]} -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 -Content-Type: application/json -Openstack-Request-Id: req-4444ef3a-e41b-43f8-9394-a1eb1909a4b6 -X-Openstack-Ironic-Api-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 -Content-Type: application/json -Openstack-Request-Id: req-9ced356a-d93f-4f09-96d6-d0de2378f648 +Openstack-Request-Id: req-06ce4432-f48c-43ed-bf6a-b089a748ef37 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'} -GOT:Response: 400 Bad Request +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:22.307224+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-07T17:33:22.307224+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-38a6d779-4521-45d5-b5b4-aee75e927c4c +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-6f231911-edea-4966-8e31-83b06cee7039 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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat ... 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.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.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.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.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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat_agent_token -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat_agent_token ... 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.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.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi ... 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.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.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.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_inspect_hardware -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware ... 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_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.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.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.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.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_local_call -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call ... 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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_local_call_expected_exception -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_expected_exception ... 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.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.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.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.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 -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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:22.584612+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-07T17:33:22.584612+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.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.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_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.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.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_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.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_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.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_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.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.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.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.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_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.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_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.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.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_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_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 +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:22.748872+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-07T17:33:22.858251+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-07T17:33:22.858251+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_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_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.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_no_worker_avail +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_no_worker_avail ... ok +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-12d2d3d3-4241-4d6c-8d22-0780eaad75b3 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-9bbbcece-c652-40d3-86fb-e56fc5790450 X-Openstack-Ironic-Api-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'} -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-481e8afd-e1c0-4591-8968-6cdd35586978 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-6a454259-1a13-403a-886f-457a6f54b9fc X-Openstack-Ironic-Api-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 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:22.770811+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': '7067a689-c93b-4f0a-bf6f-55c7767d8a57', 'name': 'f7a484f6-def7-468c-bd11-853dabaf3aff', '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 -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-6bf2e78d-fda1-4956-ad34-9b0a3a5ceec8 +Openstack-Request-Id: req-75e8ca94-8595-4328-b497-927364245c7b 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-06T10:57:07.371737+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.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.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_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv4 -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv4 ... 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 -GOT:Response: 403 Forbidden +{"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'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-2c73e4cd-478f-4a90-9ac6-34159587f6f5 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-cd0610e2-a3ce-4c8d-8394-dba333d0e55d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:22.884926+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-07T17:33:22.884926+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-2c73e4cd-478f-4a90-9ac6-34159587f6f5 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-38653cc2-4919-4df5-aa75-f0b565a0eaa4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +X-Openstack-Ironic-Api-Version: 1.26 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:22.992844+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.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 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-e7f2f592-e135-4c0b-8269-edab5cfb89c0 +Openstack-Request-Id: req-c9058b45-b371-403a-8196-ca02fe0b04dc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-e7f2f592-e135-4c0b-8269-edab5cfb89c0 +Openstack-Request-Id: req-c9058b45-b371-403a-8196-ca02fe0b04dc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +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-5add46fb-3e1a-46ad-901e-688ea3e5c654 +Openstack-Request-Id: req-5396418e-a898-4b78-b7c6-e767a4f87172 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-5add46fb-3e1a-46ad-901e-688ea3e5c654 +Openstack-Request-Id: req-5396418e-a898-4b78-b7c6-e767a4f87172 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +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-fe7dbaa6-ee57-488c-8aea-d7573805bf5c +Openstack-Request-Id: req-1d969cca-c537-4d26-adce-3d385ab7cc8d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +{"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-fe7dbaa6-ee57-488c-8aea-d7573805bf5c +Openstack-Request-Id: req-1d969cca-c537-4d26-adce-3d385ab7cc8d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 -GOT:Response: 503 Service Unavailable +{"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-1c83a9fd-b5ac-4c40-b3ee-d75ab0ada943 +Openstack-Request-Id: req-39e6cb7f-43c7-4317-9ccb-8683f45f7b97 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -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-1c83a9fd-b5ac-4c40-b3ee-d75ab0ada943 +Openstack-Request-Id: req-39e6cb7f-43c7-4317-9ccb-8683f45f7b97 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"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-a3384afe-bf03-4437-a835-04bc00e2bc39 +Openstack-Request-Id: req-e816866f-8d43-4a17-864e-027b9cedcf69 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -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-a3384afe-bf03-4437-a835-04bc00e2bc39 +Openstack-Request-Id: req-e816866f-8d43-4a17-864e-027b9cedcf69 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"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-b0b56b43-21a1-4d1c-84e0-ab42f0592aad +Openstack-Request-Id: req-603f3197-1cfe-4a27-bcde-c94b14d17dfa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-b0b56b43-21a1-4d1c-84e0-ab42f0592aad +Openstack-Request-Id: req-603f3197-1cfe-4a27-bcde-c94b14d17dfa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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'} +{"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-aea7cb06-df6d-4357-9f4e-8c0469ba6272 +Openstack-Request-Id: req-420ef7f3-1370-47d0-82b9-6aa6062b10a3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-aea7cb06-df6d-4357-9f4e-8c0469ba6272 +Openstack-Request-Id: req-420ef7f3-1370-47d0-82b9-6aa6062b10a3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.NodePowerActionTestCase.test_node_power_action_power_off -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off ... 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.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.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.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.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.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_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_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.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.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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_local_cast -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast ... 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.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.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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_local_cast_error -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast_error ... 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_management.DracRedfishManagementTestCase.test__set_failed_deploy -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_deploy ... 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.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_rpcapi.RPCAPITestCase.test_object_action -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action ... 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.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.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.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.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.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.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.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.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.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.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.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_rpcapi.RPCAPITestCase.test_object_backport_versions -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions ... 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.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.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.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.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 " -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 -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:57:07.371737+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-4a773822-6e04-464a-bbf7-6e6b3cd7f116 -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-c9bfd398-3226-4393-b95b-ea02bb2c36d6 -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 -Content-Type: application/json -Openstack-Request-Id: req-8302b756-98ed-41c5-89d6-27e4d0e1f589 -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 -/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_bios.DracBIOSConfigurationTestCase.test_set_config -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config ... 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.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 -/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_object_class_action_versions -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions ... 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.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.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 -/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_empty -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_empty ... 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.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.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.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.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.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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits ... 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.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.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.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.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_remove_node_traits_all -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits_all ... 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.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.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_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.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.conductor.test_rpcapi.RPCAPITestCase.test_rpc_disabled -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_rpc_disabled ... 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 -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-0c97300a-9524-4719-8303-f3f82fcd34a7 -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-06T10:57:07.789420+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-06T10:57:07.789420+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-2d01ef37-321c-470a-b2b4-e74b234887a7 -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.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.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.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.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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device ... ok -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-403b2982-948a-419d-a588-de080259cc76 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-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 {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-106a1cd9-26bb-4204-84da-80acffd812b5 -X-Openstack-Ironic-Api-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-7bba3732-db31-4025-8510-e482537056b9 -X-Openstack-Ironic-Api-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-150ff6ce-c634-48ff-b346-9338a0854164 -X-Openstack-Ironic-Api-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-74ac00aa-6edd-471b-bace-d1707a471473 -X-Openstack-Ironic-Api-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-948487c1-c85e-4247-84ed-a4cb7f376185 -X-Openstack-Ironic-Api-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-8336a658-c419-4d0f-adf2-0e66c84ba6ab -X-Openstack-Ironic-Api-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 -Content-Type: application/json -Openstack-Request-Id: req-3ee8f007-8a69-4bf4-874a-5a3f9490b287 -X-Openstack-Ironic-Api-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 -Content-Type: application/json -Openstack-Request-Id: req-455ef0d9-aeed-4be3-91dc-9fb2a1be03a5 -X-Openstack-Ironic-Api-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 -Content-Type: application/json -Openstack-Request-Id: req-6507acf6-dc75-4a8a-9585-d94eb466186a -X-Openstack-Ironic-Api-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 -Content-Type: application/json -Openstack-Request-Id: req-8ebc7515-f0e2-43bf-88b4-63fab7e6b90b -X-Openstack-Ironic-Api-Maximum-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: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-cf83f8ef-94cf-4424-9c60-8f016bda72de -X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +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-3d630890-4501-45b5-a7ea-2161768b7289 +Openstack-Request-Id: req-23638d8e-3bee-41e9-b38e-92389810edd5 X-Openstack-Ironic-Api-Maximum-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +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.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.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_network.TestNetwork.test_get_node_vif_ids_during_provisioning +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning ... ok +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b4db2ea5-fd80-4de6-b765-e4283bf9f414 +Openstack-Request-Id: req-b45c9822-1fcb-49ff-8115-4e7254a67fe1 X-Openstack-Ironic-Api-Maximum-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_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.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.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.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.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.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.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.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.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.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.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 +{"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-8ec428ff-9e19-4de1-91d6-eee18b3e7e3f +Openstack-Request-Id: req-b45c9822-1fcb-49ff-8115-4e7254a67fe1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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'} +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-5f258a38-f9c8-4da5-b25a-7b30b0d2e6ef +Openstack-Request-Id: req-2a574ce0-8759-493d-bd67-ca66465a5992 X-Openstack-Ironic-Api-Maximum-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-5f258a38-f9c8-4da5-b25a-7b30b0d2e6ef +Openstack-Request-Id: req-2a574ce0-8759-493d-bd67-ca66465a5992 X-Openstack-Ironic-Api-Maximum-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'} +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-41392468-76d5-48af-9cfe-f8ed4e1329f2 +Openstack-Request-Id: req-b4f280b5-5174-42d0-a82f-f198244120f1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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_raid_state\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-41392468-76d5-48af-9cfe-f8ed4e1329f2 +Openstack-Request-Id: req-b4f280b5-5174-42d0-a82f-f198244120f1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 -GOT:Response: 503 Service Unavailable +{"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-03cb83c9-b2e1-47df-9caa-74a29a04d0ca +Openstack-Request-Id: req-47467d96-29c7-4c00-8e38-a9e52736ca35 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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:get_console\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-03cb83c9-b2e1-47df-9caa-74a29a04d0ca +Openstack-Request-Id: req-47467d96-29c7-4c00-8e38-a9e52736ca35 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"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-5c94868e-f8e8-43d5-bff3-2ef9400dabe8 +Openstack-Request-Id: req-a8420f0f-eb95-4746-9e18-8ca9b15bc9bb X-Openstack-Ironic-Api-Maximum-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-5c94868e-f8e8-43d5-bff3-2ef9400dabe8 +Openstack-Request-Id: req-a8420f0f-eb95-4746-9e18-8ca9b15bc9bb X-Openstack-Ironic-Api-Maximum-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 -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-38a1bff1-98e2-41aa-b40d-d979a0101c1e -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-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-38a1bff1-98e2-41aa-b40d-d979a0101c1e -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-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 {} +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-5e907b45-a303-4a5a-ac89-785f07032665 +Openstack-Request-Id: req-a27af374-b922-47e5-afb3-f2b45deca5df X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-5e907b45-a303-4a5a-ac89-785f07032665 +Openstack-Request-Id: req-a27af374-b922-47e5-afb3-f2b45deca5df X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 {} +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-b015cc61-bb82-4c60-8773-10cf6ecc72f1 +Openstack-Request-Id: req-cc21d342-e637-48d9-907e-dd2cbd443f55 X-Openstack-Ironic-Api-Maximum-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-b015cc61-bb82-4c60-8773-10cf6ecc72f1 +Openstack-Request-Id: req-cc21d342-e637-48d9-907e-dd2cbd443f55 X-Openstack-Ironic-Api-Maximum-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 {} -GOT:Response: 503 Service Unavailable +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-4e332d80-4e3e-4ee0-a9c0-cc3a3e00904d +Openstack-Request-Id: req-13eb8f17-8e4c-4b92-8338-84f0fa232129 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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_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.conductor.test_rpcapi.RPCAPITestCase.test_set_indicator_state -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_indicator_state ... 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.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.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.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.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.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.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.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.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.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.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.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_rpcapi.RPCAPITestCase.test_update_node -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node ... 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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_update_port -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port ... 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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup ... 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.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.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.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.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 -GOT:Response: 201 Created +{"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 -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-1cf15c66-5f1c-4a37-bfea-663c65e1bd44 +Openstack-Request-Id: req-13eb8f17-8e4c-4b92-8338-84f0fa232129 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-06T10:57:08.059125+00:00", "updated_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'} +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_middleware.TestBasicAuthMiddleware.test_authenticated +ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_authenticated ... 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.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.controllers.v1.test_node.TestListNodes.test_links +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links ... 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_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.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_manager.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-b2d22a5a-b0bd-4613-84aa-4c7f93ca5930 +Openstack-Request-Id: req-a133dc0f-e21c-45e2-ab6d-12cbe2d62ea5 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-06T10:57:08.194386+00:00", "updated_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"}]} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:22.771150+00:00", "updated_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-06T10:57:08.194386+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-387909d7-a478-4768-b934-1ea7126ccbf6 -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.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.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.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.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.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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target ... 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.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.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.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_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.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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces ... 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.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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru ... 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.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.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 +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:22.771150+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-ee6c9b52-d8b2-4265-8a14-2a1091283572 +Openstack-Request-Id: req-2af264d3-33a8-4100-bf1b-7db67cefee47 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-06T10:57:08.524216+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"}]} +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:22.980240+00:00", "updated_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-06T10:57:08.524216+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-efab6c45-7052-4129-a779-7d7be93b3858 -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}"} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:22.980240+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'} -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 -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.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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach ... 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.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.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_rpcapi.RPCAPITestCase.test_vif_detach -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach ... 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.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.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_success -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_success ... ok -GOT:Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-a9cdbc06-eefa-4a6a-9204-688aa616c525 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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-a9cdbc06-eefa-4a6a-9204-688aa616c525 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-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 -Content-Type: application/json -Openstack-Request-Id: req-085a4f78-4a98-4b7e-aefe-e6f5adc08308 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-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 +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-085a4f78-4a98-4b7e-aefe-e6f5adc08308 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-6660688d-1306-4272-b2dc-9a741633dc9f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 {} +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T17:33:23.214221+00:00", "updated_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.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.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_middleware.TestBasicAuthMiddleware.test_not_authenticated +ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_not_authenticated ... 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.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.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.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:22.969267+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-07T17:33:22.969267+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/facb0a4b-eb07-47fe-9614-fadb201f81ba {} +GOT:{'uuid': 'facb0a4b-eb07-47fe-9614-fadb201f81ba', 'created_at': '2025-02-07T17:33:23.090473+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/facb0a4b-eb07-47fe-9614-fadb201f81ba', 'rel': 'self'}, {'href': 'http://localhost/nodes/facb0a4b-eb07-47fe-9614-fadb201f81ba', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/facb0a4b-eb07-47fe-9614-fadb201f81ba/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/facb0a4b-eb07-47fe-9614-fadb201f81ba/ports', 'rel': 'bookmark'}]} +GET: /v1/nodes/facb0a4b-eb07-47fe-9614-fadb201f81ba {} +GOT:{'uuid': 'facb0a4b-eb07-47fe-9614-fadb201f81ba', 'created_at': '2025-02-07T17:33:23.090473+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/facb0a4b-eb07-47fe-9614-fadb201f81ba', 'rel': 'self'}, {'href': 'http://localhost/nodes/facb0a4b-eb07-47fe-9614-fadb201f81ba', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/facb0a4b-eb07-47fe-9614-fadb201f81ba/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/facb0a4b-eb07-47fe-9614-fadb201f81ba/ports', 'rel': 'bookmark'}]} +GET: /nodes/facb0a4b-eb07-47fe-9614-fadb201f81ba {} +GOT:{'uuid': 'facb0a4b-eb07-47fe-9614-fadb201f81ba', 'created_at': '2025-02-07T17:33:23.090473+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/facb0a4b-eb07-47fe-9614-fadb201f81ba', 'rel': 'self'}, {'href': 'http://localhost/nodes/facb0a4b-eb07-47fe-9614-fadb201f81ba', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/facb0a4b-eb07-47fe-9614-fadb201f81ba/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/facb0a4b-eb07-47fe-9614-fadb201f81ba/ports', 'rel': 'bookmark'}]} +GET: /v1/nodes/0beece47-f794-4f30-a3f6-09374c5cdb2b {} +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_with_internal_field +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_internal_field ... 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.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.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.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.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.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 +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +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.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.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.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.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.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_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.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.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_node.TestPost.test_post_ports_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource ... 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.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.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_manager.ManagerCheckDeployTimeoutsTestCase.test_not_mapped +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_not_mapped ... 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 +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-9986a374-f718-4075-8a0d-0211f8148959 +Openstack-Request-Id: req-c5b3ebc0-5cf1-48d1-82ec-77b7ac394f65 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-9986a374-f718-4075-8a0d-0211f8148959 +Openstack-Request-Id: req-c5b3ebc0-5cf1-48d1-82ec-77b7ac394f65 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 {} +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-e45bce5c-bfd1-4531-bb04-f33696a837a5 +Openstack-Request-Id: req-385b73dd-5380-4cc5-a8cc-99870a134404 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-e45bce5c-bfd1-4531-bb04-f33696a837a5 +Openstack-Request-Id: req-385b73dd-5380-4cc5-a8cc-99870a134404 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 {} +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: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f377aff5-8916-4c1a-bcf6-414d5b0cf6b8 +Openstack-Request-Id: req-b889b2b5-e4f1-4fc6-8bcf-028d3064c18c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +{"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-f377aff5-8916-4c1a-bcf6-414d5b0cf6b8 +Openstack-Request-Id: req-b889b2b5-e4f1-4fc6-8bcf-028d3064c18c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"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': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-8f5b2292-80bd-429a-b387-d571017ef884 +Openstack-Request-Id: req-c4b54aba-23fa-4007-858d-28c458e0669f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-8f5b2292-80bd-429a-b387-d571017ef884 +Openstack-Request-Id: req-c4b54aba-23fa-4007-858d-28c458e0669f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 patch /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f +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-e51f3fbe-627b-4c31-892a-496cae2871c9 +Openstack-Request-Id: req-e0f1982d-aab5-4537-824a-05f77ac74f79 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-e51f3fbe-627b-4c31-892a-496cae2871c9 +Openstack-Request-Id: req-e0f1982d-aab5-4537-824a-05f77ac74f79 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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-193ea872-61b3-4fe0-aa45-e7755b22b00f -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-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-193ea872-61b3-4fe0-aa45-e7755b22b00f -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-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.conductor.test_rpcapi.RPCAPITestCase.test_vif_list -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list ... ok -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-cb976349-e295-459f-9371-43b1526a6536 -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-06T10:57:08.726827+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-06T10:57:08.726827+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.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.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.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.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.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.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_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.CacheBootModeTestCase.test_already_present -ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_already_present ... 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.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.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 -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_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.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.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.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_get_ip_addresses -ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_get_ip_addresses ... 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_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.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_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.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.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac ... ok -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-dbf5d95f-c30a-48fc-bfa6-b6f4a6ba38e6 -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-06T10:57:08.912797+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-06T10:57:08.912797+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-b5232ed9-8d13-4225-adf8-f01cb72ee89b -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'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-9001192b-ed81-4726-9372-1113e2847e29 -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.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.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.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.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.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_update_dhcp -ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_update_dhcp ... 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 -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.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.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.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.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.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.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_utils.CacheBootModeTestCase.test_failed_boot_mode -ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_failed_boot_mode ... 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.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.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.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.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.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 -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-e24cc799-a1a3-419c-9f57-5a1199efeaab -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-a07412d7-2a59-4181-aaba-e6ba74ed09b1 -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-c422a0c9-24fb-4225-bcc7-c347e217afd7 -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-ab650cd3-170f-4f0d-b4f7-5ffc7a2186de -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-e99fe0fa-f916-4cc0-8d56-7e6972b7a610 -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 -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.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.conductor.test_utils.CacheBootModeTestCase.test_failed_secure -ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_failed_secure ... 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.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.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_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.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.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.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.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.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_utils.CacheBootModeTestCase.test_noneness -ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_noneness ... 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.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.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.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.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.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.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.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.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.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.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.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.conductor.test_utils.CacheBootModeTestCase.test_retreive_and_set -ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_retreive_and_set ... 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.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.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.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.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 -GOT:Response: 201 Created +API ACL Testing Path patch /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f +PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 503 Service Unavailable Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-49b20d4c-0f85-4d53-a9c2-ec347ef764a8 +Openstack-Request-Id: req-e164d281-5f4c-4b63-9239-30e32ed7bb33 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-06T10:57:09.296842+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': '2024-01-06T10:57:09.296842+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-721d0455-b329-461d-8be1-1fd24933f656 -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.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.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.conductor.test_utils.CacheBootModeTestCase.test_unsupported -ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_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.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_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.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.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.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.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.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.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_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.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.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.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.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.GetAttachedVifTestCase.test_get_attached_vif_inspecting -ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_inspecting ... 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 +{"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-4e332d80-4e3e-4ee0-a9c0-cc3a3e00904d +Openstack-Request-Id: req-e164d281-5f4c-4b63-9239-30e32ed7bb33 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-bad0faec-cab6-4b0a-844b-0936c174ce2b -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-bad0faec-cab6-4b0a-844b-0936c174ce2b -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 {} +API ACL Testing Path patch /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f +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-e1d86079-4afe-4ca9-b6ce-5ce06029d886 +Openstack-Request-Id: req-bdd60850-6fc9-4629-bbf7-c2309d0eb766 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:node:update_extra\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-e1d86079-4afe-4ca9-b6ce-5ce06029d886 +Openstack-Request-Id: req-bdd60850-6fc9-4629-bbf7-c2309d0eb766 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} +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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8d678f24-f891-4306-88f8-a5600726c4cc +Openstack-Request-Id: req-bbd71108-c4be-42e2-aa06-76ff08652e81 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\": \"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-8d678f24-f891-4306-88f8-a5600726c4cc +Openstack-Request-Id: req-bbd71108-c4be-42e2-aa06-76ff08652e81 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'} +{"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.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.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.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.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout ... 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.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_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_maintenance_nodes_associated +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_associated ... 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.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.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit ... 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 GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/portgroups/df013d21-5fa0-4a82-ae68-c91363ef7303 -Openstack-Request-Id: req-076b2006-cb95-441f-be5e-7411394c7a86 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-f0719dbb-c8e8-4efc-b837-5c9cbfeea9d1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "df013d21-5fa0-4a82-ae68-c91363ef7303", "created_at": "2024-01-06T10:57:09.282778+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/df013d21-5fa0-4a82-ae68-c91363ef7303", "rel": "self"}, {"href": "http://localhost/portgroups/df013d21-5fa0-4a82-ae68-c91363ef7303", "rel": "bookmark"}], "node_uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "ports": [{"href": "http://localhost/v1/portgroups/df013d21-5fa0-4a82-ae68-c91363ef7303/ports", "rel": "self"}, {"href": "http://localhost/portgroups/df013d21-5fa0-4a82-ae68-c91363ef7303/ports", "rel": "bookmark"}]} -ACL Test GOT Response: 201 Created +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:23.063121+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-07T17:33:23.063121+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 -Location: http://localhost/v1/portgroups/df013d21-5fa0-4a82-ae68-c91363ef7303 -Openstack-Request-Id: req-076b2006-cb95-441f-be5e-7411394c7a86 +Openstack-Request-Id: req-650c6882-ca8d-4194-81eb-f53a832745c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "df013d21-5fa0-4a82-ae68-c91363ef7303", "created_at": "2024-01-06T10:57:09.282778+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/df013d21-5fa0-4a82-ae68-c91363ef7303", "rel": "self"}, {"href": "http://localhost/portgroups/df013d21-5fa0-4a82-ae68-c91363ef7303", "rel": "bookmark"}], "node_uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "ports": [{"href": "http://localhost/v1/portgroups/df013d21-5fa0-4a82-ae68-c91363ef7303/ports", "rel": "self"}, {"href": "http://localhost/portgroups/df013d21-5fa0-4a82-ae68-c91363ef7303/ports", "rel": "bookmark"}]} -API ACL Testing Path post /v1/portgroups -POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} -GOT:Response: 403 Forbidden +{"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 -Openstack-Request-Id: req-5a741084-379f-4fce-8118-c4098fc83e3a +Location: http://localhost/v1/portgroups/c0db7a89-b502-4a07-a224-101f7df65cbc +Openstack-Request-Id: req-8443eceb-6439-4ee0-8067-6d014caf9aba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"uuid": "c0db7a89-b502-4a07-a224-101f7df65cbc", "created_at": "2025-02-07T17:33:23.305421+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/c0db7a89-b502-4a07-a224-101f7df65cbc", "rel": "self"}, {"href": "http://localhost/portgroups/c0db7a89-b502-4a07-a224-101f7df65cbc", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/c0db7a89-b502-4a07-a224-101f7df65cbc/ports", "rel": "self"}, {"href": "http://localhost/portgroups/c0db7a89-b502-4a07-a224-101f7df65cbc/ports", "rel": "bookmark"}]} +GET: /v1/portgroups/c0db7a89-b502-4a07-a224-101f7df65cbc {} +GOT:{'uuid': 'c0db7a89-b502-4a07-a224-101f7df65cbc', 'created_at': '2025-02-07T17:33:23.305421+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/c0db7a89-b502-4a07-a224-101f7df65cbc', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c0db7a89-b502-4a07-a224-101f7df65cbc', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/c0db7a89-b502-4a07-a224-101f7df65cbc/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c0db7a89-b502-4a07-a224-101f7df65cbc/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-5a741084-379f-4fce-8118-c4098fc83e3a +Openstack-Request-Id: req-2d39b2dd-9e7b-4890-934d-a9e10f02769b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-830fb894-7e40-4c4d-975d-1b1996d18d0b +Openstack-Request-Id: req-f2c9918f-d9c0-4711-af86-123b56e95f9c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-830fb894-7e40-4c4d-975d-1b1996d18d0b +Openstack-Request-Id: req-93742ce4-4ce3-4c10-aa6d-e231c541f5aa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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.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.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.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_utils.GetAttachedVifTestCase.test_get_attached_vif_none -ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_none ... 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.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.ibmc.test_utils.IBMCUtilsTestCase.test_revert_dictionary -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_revert_dictionary ... ok -GOT:Response: 201 Created +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 -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-c186792b-c1a1-48d6-819b-f1b34f3146a1 +Openstack-Request-Id: req-f071da56-649d-406c-bbe7-99b33236a635 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": "2024-01-06T10:57:09.571113+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-06T10:57:09.571113+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'} +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 Content-Type: application/json -Openstack-Request-Id: req-efce799d-c097-4f85-a421-f25fa87f04f1 +Openstack-Request-Id: req-205fd8fe-92af-44e5-9a45-619bc3a1f255 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.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -POST: /v1/nodes {'uuid': '0a7a2313-b426-4ace-b728-982bc7883397', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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.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.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.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.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.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_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.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.test_deploy_utils.InstanceImageCacheTestCase.test_with_master_path -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_with_master_path ... ok -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/nodes/0a7a2313-b426-4ace-b728-982bc7883397 -Openstack-Request-Id: req-c15f544d-32eb-4356-ba51-f1ba8a8d37e2 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "0a7a2313-b426-4ace-b728-982bc7883397", "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/0a7a2313-b426-4ace-b728-982bc7883397", "rel": "self"}, {"href": "http://localhost/nodes/0a7a2313-b426-4ace-b728-982bc7883397", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/0a7a2313-b426-4ace-b728-982bc7883397/ports", "rel": "self"}, {"href": "http://localhost/nodes/0a7a2313-b426-4ace-b728-982bc7883397/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0a7a2313-b426-4ace-b728-982bc7883397/states", "rel": "self"}, {"href": "http://localhost/nodes/0a7a2313-b426-4ace-b728-982bc7883397/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0a7a2313-b426-4ace-b728-982bc7883397/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0a7a2313-b426-4ace-b728-982bc7883397/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0a7a2313-b426-4ace-b728-982bc7883397/volume", "rel": "self"}, {"href": "http://localhost/nodes/0a7a2313-b426-4ace-b728-982bc7883397/volume", "rel": "bookmark"}]} -GET: /v1/nodes/0a7a2313-b426-4ace-b728-982bc7883397 {} -GOT:{'uuid': '0a7a2313-b426-4ace-b728-982bc7883397', '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/0a7a2313-b426-4ace-b728-982bc7883397', 'rel': 'self'}, {'href': 'http://localhost/nodes/0a7a2313-b426-4ace-b728-982bc7883397', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/0a7a2313-b426-4ace-b728-982bc7883397/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/0a7a2313-b426-4ace-b728-982bc7883397/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/0a7a2313-b426-4ace-b728-982bc7883397/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/0a7a2313-b426-4ace-b728-982bc7883397/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/0a7a2313-b426-4ace-b728-982bc7883397/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/0a7a2313-b426-4ace-b728-982bc7883397/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/0a7a2313-b426-4ace-b728-982bc7883397/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/0a7a2313-b426-4ace-b728-982bc7883397/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': 'd5bc2ae4-d048-480e-8f15-e1da9b990ae4', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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/d5bc2ae4-d048-480e-8f15-e1da9b990ae4 -Openstack-Request-Id: req-22407ef1-9de3-4768-9e83-e9ae10f8ac74 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "d5bc2ae4-d048-480e-8f15-e1da9b990ae4", "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/d5bc2ae4-d048-480e-8f15-e1da9b990ae4", "rel": "self"}, {"href": "http://localhost/nodes/d5bc2ae4-d048-480e-8f15-e1da9b990ae4", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/d5bc2ae4-d048-480e-8f15-e1da9b990ae4/ports", "rel": "self"}, {"href": "http://localhost/nodes/d5bc2ae4-d048-480e-8f15-e1da9b990ae4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d5bc2ae4-d048-480e-8f15-e1da9b990ae4/states", "rel": "self"}, {"href": "http://localhost/nodes/d5bc2ae4-d048-480e-8f15-e1da9b990ae4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d5bc2ae4-d048-480e-8f15-e1da9b990ae4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d5bc2ae4-d048-480e-8f15-e1da9b990ae4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d5bc2ae4-d048-480e-8f15-e1da9b990ae4/volume", "rel": "self"}, {"href": "http://localhost/nodes/d5bc2ae4-d048-480e-8f15-e1da9b990ae4/volume", "rel": "bookmark"}]} -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.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.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.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.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.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.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.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 -GET: /v1/nodes/d5bc2ae4-d048-480e-8f15-e1da9b990ae4 {} -GOT:{'uuid': 'd5bc2ae4-d048-480e-8f15-e1da9b990ae4', '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/d5bc2ae4-d048-480e-8f15-e1da9b990ae4', 'rel': 'self'}, {'href': 'http://localhost/nodes/d5bc2ae4-d048-480e-8f15-e1da9b990ae4', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/d5bc2ae4-d048-480e-8f15-e1da9b990ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/d5bc2ae4-d048-480e-8f15-e1da9b990ae4/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/d5bc2ae4-d048-480e-8f15-e1da9b990ae4/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/d5bc2ae4-d048-480e-8f15-e1da9b990ae4/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/d5bc2ae4-d048-480e-8f15-e1da9b990ae4/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/d5bc2ae4-d048-480e-8f15-e1da9b990ae4/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/d5bc2ae4-d048-480e-8f15-e1da9b990ae4/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/d5bc2ae4-d048-480e-8f15-e1da9b990ae4/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': 'e8befb7f-c3b4-4cf5-9638-a92b1899bcb4', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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/e8befb7f-c3b4-4cf5-9638-a92b1899bcb4 -Openstack-Request-Id: req-a18c1010-4372-4194-8a0e-15f4e1e76618 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "e8befb7f-c3b4-4cf5-9638-a92b1899bcb4", "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/e8befb7f-c3b4-4cf5-9638-a92b1899bcb4", "rel": "self"}, {"href": "http://localhost/nodes/e8befb7f-c3b4-4cf5-9638-a92b1899bcb4", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/e8befb7f-c3b4-4cf5-9638-a92b1899bcb4/ports", "rel": "self"}, {"href": "http://localhost/nodes/e8befb7f-c3b4-4cf5-9638-a92b1899bcb4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e8befb7f-c3b4-4cf5-9638-a92b1899bcb4/states", "rel": "self"}, {"href": "http://localhost/nodes/e8befb7f-c3b4-4cf5-9638-a92b1899bcb4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e8befb7f-c3b4-4cf5-9638-a92b1899bcb4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e8befb7f-c3b4-4cf5-9638-a92b1899bcb4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e8befb7f-c3b4-4cf5-9638-a92b1899bcb4/volume", "rel": "self"}, {"href": "http://localhost/nodes/e8befb7f-c3b4-4cf5-9638-a92b1899bcb4/volume", "rel": "bookmark"}]} -GET: /v1/nodes/e8befb7f-c3b4-4cf5-9638-a92b1899bcb4 {} -GOT:{'uuid': 'e8befb7f-c3b4-4cf5-9638-a92b1899bcb4', '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/e8befb7f-c3b4-4cf5-9638-a92b1899bcb4', 'rel': 'self'}, {'href': 'http://localhost/nodes/e8befb7f-c3b4-4cf5-9638-a92b1899bcb4', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/e8befb7f-c3b4-4cf5-9638-a92b1899bcb4/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e8befb7f-c3b4-4cf5-9638-a92b1899bcb4/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e8befb7f-c3b4-4cf5-9638-a92b1899bcb4/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e8befb7f-c3b4-4cf5-9638-a92b1899bcb4/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/e8befb7f-c3b4-4cf5-9638-a92b1899bcb4/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/e8befb7f-c3b4-4cf5-9638-a92b1899bcb4/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/e8befb7f-c3b4-4cf5-9638-a92b1899bcb4/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/e8befb7f-c3b4-4cf5-9638-a92b1899bcb4/volume', 'rel': 'bookmark'}]} -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.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 -GOT:Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-82871848-f641-492e-aea1-d7456cbaf72f -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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-82871848-f641-492e-aea1-d7456cbaf72f -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-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 +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.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.irmc.test_management.IRMCManagementTestCase.test_validate +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate ... 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.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_node.TestListNodes.test_maintenance_nodes_error +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_error ... 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.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.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_portgroup.TestPost.test_create_portgroup_mode_properties +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_properties ... ok +GOT:{'uuid': '0beece47-f794-4f30-a3f6-09374c5cdb2b', 'created_at': '2025-02-07T17:33:23.282559+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/0beece47-f794-4f30-a3f6-09374c5cdb2b', 'rel': 'self'}, {'href': 'http://foo/nodes/0beece47-f794-4f30-a3f6-09374c5cdb2b', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://foo/v1/nodes/0beece47-f794-4f30-a3f6-09374c5cdb2b/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/0beece47-f794-4f30-a3f6-09374c5cdb2b/ports', 'rel': 'bookmark'}]} +GET: /v1/nodes/0beece47-f794-4f30-a3f6-09374c5cdb2b {} +GOT:{'uuid': '0beece47-f794-4f30-a3f6-09374c5cdb2b', 'created_at': '2025-02-07T17:33:23.282559+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/0beece47-f794-4f30-a3f6-09374c5cdb2b', 'rel': 'self'}, {'href': 'http://foo/nodes/0beece47-f794-4f30-a3f6-09374c5cdb2b', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://foo/v1/nodes/0beece47-f794-4f30-a3f6-09374c5cdb2b/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/0beece47-f794-4f30-a3f6-09374c5cdb2b/ports', 'rel': 'bookmark'}]} +GET: /nodes/0beece47-f794-4f30-a3f6-09374c5cdb2b {} +GOT:{'uuid': '0beece47-f794-4f30-a3f6-09374c5cdb2b', 'created_at': '2025-02-07T17:33:23.282559+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/0beece47-f794-4f30-a3f6-09374c5cdb2b', 'rel': 'self'}, {'href': 'http://foo/nodes/0beece47-f794-4f30-a3f6-09374c5cdb2b', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://foo/v1/nodes/0beece47-f794-4f30-a3f6-09374c5cdb2b/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/0beece47-f794-4f30-a3f6-09374c5cdb2b/ports', 'rel': 'bookmark'}]} +GET: /v1/nodes?maintenance=true {} +GOT:{'nodes': [{'uuid': '01c31fd3-8051-4d6b-a4da-5738f7f87885', 'instance_uuid': None, 'maintenance': True, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/01c31fd3-8051-4d6b-a4da-5738f7f87885', 'rel': 'self'}, {'href': 'http://localhost/nodes/01c31fd3-8051-4d6b-a4da-5738f7f87885', 'rel': 'bookmark'}]}, {'uuid': '43e22bef-54a9-4ef0-8000-1bbbfad4f21f', 'instance_uuid': None, 'maintenance': True, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/43e22bef-54a9-4ef0-8000-1bbbfad4f21f', 'rel': 'self'}, {'href': 'http://localhost/nodes/43e22bef-54a9-4ef0-8000-1bbbfad4f21f', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?maintenance=false {} +GOT:{'nodes': [{'uuid': 'bafb9229-5bc3-47ec-99e2-30cc85d1f148', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/bafb9229-5bc3-47ec-99e2-30cc85d1f148', 'rel': 'self'}, {'href': 'http://localhost/nodes/bafb9229-5bc3-47ec-99e2-30cc85d1f148', 'rel': 'bookmark'}]}, {'uuid': '9f8d2382-b5e5-416b-a93d-726521fdd869', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/9f8d2382-b5e5-416b-a93d-726521fdd869', 'rel': 'self'}, {'href': 'http://localhost/nodes/9f8d2382-b5e5-416b-a93d-726521fdd869', 'rel': 'bookmark'}]}, {'uuid': 'b79cc5f4-a064-4866-9207-65f659dac232', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/b79cc5f4-a064-4866-9207-65f659dac232', 'rel': 'self'}, {'href': 'http://localhost/nodes/b79cc5f4-a064-4866-9207-65f659dac232', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?associated=true&maintenance=false {} +GOT:{'nodes': [{'uuid': '744bc586-d233-453e-af9b-8463ae8b2595', 'instance_uuid': '9f9b67d6-f1c6-4fe5-9f30-3ec887b87aa2', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/744bc586-d233-453e-af9b-8463ae8b2595', 'rel': 'self'}, {'href': 'http://localhost/nodes/744bc586-d233-453e-af9b-8463ae8b2595', 'rel': 'bookmark'}]}, {'uuid': '2e0927e9-97c5-4367-a418-8b2c616ea6ce', 'instance_uuid': '43426a36-8d80-408f-bab6-59ac98d8a5be', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/2e0927e9-97c5-4367-a418-8b2c616ea6ce', 'rel': 'self'}, {'href': 'http://localhost/nodes/2e0927e9-97c5-4367-a418-8b2c616ea6ce', 'rel': 'bookmark'}]}, {'uuid': 'c2384c38-9f2d-4785-a7c1-fdbc14afe9f8', 'instance_uuid': '7c282a5b-7d57-49f5-93ec-0a0e02fd841a', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/c2384c38-9f2d-4785-a7c1-fdbc14afe9f8', 'rel': 'self'}, {'href': 'http://localhost/nodes/c2384c38-9f2d-4785-a7c1-fdbc14afe9f8', 'rel': 'bookmark'}]}, {'uuid': '62a3cb75-6ac1-4833-be7c-6ccdade84857', 'instance_uuid': '9ce61130-3796-437c-a3cf-33e5003cb46b', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/62a3cb75-6ac1-4833-be7c-6ccdade84857', 'rel': 'self'}, {'href': 'http://localhost/nodes/62a3cb75-6ac1-4833-be7c-6ccdade84857', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?associated=true&maintenance=true {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': '53ea64ad-0d09-4751-9098-51ff4667c98c', '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': '53ea64ad-0d09-4751-9098-51ff4667c98c', '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-bba6fc7a-5b4d-49e1-a8de-131e9f593752 +Openstack-Request-Id: req-5e9dac27-bc3f-4fb0-b5f6-3aaf07bb3e14 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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\": \"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.irmc.test_management.IRMCManagementTestCase.test_validate_fail +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_fail ... 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_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.api.controllers.v1.test_node.TestListNodes.test_many +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many ... 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.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_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.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.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.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.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.controllers.v1.test_node.TestListNodes.test_many_forbidden +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_forbidden ... 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 +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.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.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.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.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.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.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_many_have_names +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_have_names ... 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.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.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.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.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.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.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.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.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_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.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.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.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.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.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_manager.UpdatePortTestCase.test_update_port_node_locked +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked ... 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.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.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.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.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_node.TestListNodes.test_many_list_all_forbidden +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden ... ok +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-bba6fc7a-5b4d-49e1-a8de-131e9f593752 +Openstack-Request-Id: req-7f2f4abf-06b7-401d-a01c-0391c9566fb0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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: 403 Forbidden +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 -Openstack-Request-Id: req-a59fcf50-1fa1-4cbc-b9b3-1f68f42b3ce8 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-fb2da76f-f2d7-4fd7-bfac-6597352e3946 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +X-Openstack-Ironic-Api-Version: 1.26 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:23.847035+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 -Openstack-Request-Id: req-a59fcf50-1fa1-4cbc-b9b3-1f68f42b3ce8 +Openstack-Request-Id: req-28e7e0bb-1d90-4ecc-8e59-1b0cfae81751 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-e4067277-70c0-4823-bafc-bdd94574a20f +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-9380fd76-e883-49e7-bdbc-067601aefa21 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": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:24.069005+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-07T17:33:24.069005+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-e4067277-70c0-4823-bafc-bdd94574a20f +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-e25d57e8-c80f-4080-b53d-34c20eef3f55 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 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:24.206242+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-07T17:33:24.206242+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-740d121b-9e43-4e1b-bc56-9f52f6e2c288 +Openstack-Request-Id: req-844289e7-a82f-4351-9d60-44cb656fd9b5 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\": \"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-740d121b-9e43-4e1b-bc56-9f52f6e2c288 +Openstack-Request-Id: req-c55c8316-b4eb-4f69-8196-858b4dc3a863 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\": \"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.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.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.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.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.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.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.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.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.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 +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-72480b9b-eeb0-4628-8d7e-abdce707a8b0 -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-72480b9b-eeb0-4628-8d7e-abdce707a8b0 +Openstack-Request-Id: req-067ecaa2-2a1c-4c6d-9920-c776113ed62c 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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:16.893317+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-20a6f984-38d9-4bcf-a438-a2153d2788a2 +Openstack-Request-Id: req-da9b95ea-f02f-4878-b6ff-ca74d665f6a2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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": "2025-02-07T17:33:16.969671+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 -Openstack-Request-Id: req-20a6f984-38d9-4bcf-a438-a2153d2788a2 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-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": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +PATCH: /v1/volume/targets/e9d54a67-56eb-429d-8714-887fdd1395ac [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-00bedff8-a90a-41d2-9fc1-10b8c5830067 +Openstack-Request-Id: req-d0f59660-8898-4aef-9c17-b9d458a89d11 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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_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.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.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.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.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_utils.StoreAgentCertificateTestCase.test_no_change -ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_no_change ... ok -POST: /v1/nodes {'uuid': 'a2a72a9a-4f7d-435b-bf09-8c0c192aafa3', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target e9d54a67-56eb-429d-8714-887fdd1395ac could not be found.\", \"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'}} +{'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-6d597c7a-fd92-44e9-b320-501d78956163', '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'} +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.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.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 +GOT:{'nodes': [{'uuid': '4cde53d1-c4ce-426b-bec3-d7d7418c5797', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/4cde53d1-c4ce-426b-bec3-d7d7418c5797', 'rel': 'self'}, {'href': 'http://localhost/nodes/4cde53d1-c4ce-426b-bec3-d7d7418c5797', 'rel': 'bookmark'}]}, {'uuid': '3eeae3f3-4a45-443d-a420-7bd3fa00db18', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/3eeae3f3-4a45-443d-a420-7bd3fa00db18', 'rel': 'self'}, {'href': 'http://localhost/nodes/3eeae3f3-4a45-443d-a420-7bd3fa00db18', 'rel': 'bookmark'}]}, {'uuid': 'a8b7836b-0a28-41b4-a377-67feb8184893', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/a8b7836b-0a28-41b4-a377-67feb8184893', 'rel': 'self'}, {'href': 'http://localhost/nodes/a8b7836b-0a28-41b4-a377-67feb8184893', 'rel': 'bookmark'}]}, {'uuid': '8547fb19-d6fc-4a5c-a424-cf81c6cf11d5', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/8547fb19-d6fc-4a5c-a424-cf81c6cf11d5', 'rel': 'self'}, {'href': 'http://localhost/nodes/8547fb19-d6fc-4a5c-a424-cf81c6cf11d5', 'rel': 'bookmark'}]}, {'uuid': '90745a64-a6fd-407c-841e-d184f163d7bd', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/90745a64-a6fd-407c-841e-d184f163d7bd', 'rel': 'self'}, {'href': 'http://localhost/nodes/90745a64-a6fd-407c-841e-d184f163d7bd', 'rel': 'bookmark'}]}]} +GET: /v1/nodes {} +GOT:Response: 403 Forbidden Content-Type: application/json -Location: http://localhost/v1/nodes/a2a72a9a-4f7d-435b-bf09-8c0c192aafa3 -Openstack-Request-Id: req-ef234520-1859-4eef-b8a2-64984ee3118d +Openstack-Request-Id: req-2d210430-18b7-4269-8d91-d3574f059225 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "a2a72a9a-4f7d-435b-bf09-8c0c192aafa3", "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/a2a72a9a-4f7d-435b-bf09-8c0c192aafa3", "rel": "self"}, {"href": "http://localhost/nodes/a2a72a9a-4f7d-435b-bf09-8c0c192aafa3", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/a2a72a9a-4f7d-435b-bf09-8c0c192aafa3/ports", "rel": "self"}, {"href": "http://localhost/nodes/a2a72a9a-4f7d-435b-bf09-8c0c192aafa3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a2a72a9a-4f7d-435b-bf09-8c0c192aafa3/states", "rel": "self"}, {"href": "http://localhost/nodes/a2a72a9a-4f7d-435b-bf09-8c0c192aafa3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a2a72a9a-4f7d-435b-bf09-8c0c192aafa3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a2a72a9a-4f7d-435b-bf09-8c0c192aafa3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a2a72a9a-4f7d-435b-bf09-8c0c192aafa3/volume", "rel": "self"}, {"href": "http://localhost/nodes/a2a72a9a-4f7d-435b-bf09-8c0c192aafa3/volume", "rel": "bookmark"}]} -GET: /v1/nodes/a2a72a9a-4f7d-435b-bf09-8c0c192aafa3 {} -GOT:{'uuid': 'a2a72a9a-4f7d-435b-bf09-8c0c192aafa3', '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/a2a72a9a-4f7d-435b-bf09-8c0c192aafa3', 'rel': 'self'}, {'href': 'http://localhost/nodes/a2a72a9a-4f7d-435b-bf09-8c0c192aafa3', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/a2a72a9a-4f7d-435b-bf09-8c0c192aafa3/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a2a72a9a-4f7d-435b-bf09-8c0c192aafa3/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/a2a72a9a-4f7d-435b-bf09-8c0c192aafa3/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/a2a72a9a-4f7d-435b-bf09-8c0c192aafa3/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/a2a72a9a-4f7d-435b-bf09-8c0c192aafa3/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/a2a72a9a-4f7d-435b-bf09-8c0c192aafa3/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/a2a72a9a-4f7d-435b-bf09-8c0c192aafa3/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/a2a72a9a-4f7d-435b-bf09-8c0c192aafa3/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': 'b642dc12-89ea-4cb8-bb2e-fdd93f679142', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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.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.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.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_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.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.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.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 -GOT:Response: 201 Created +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': 'c76fe3b6-bd94-4a83-a1cf-c040cd123d04', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-0', 'links': [{'href': 'http://localhost/v1/nodes/c76fe3b6-bd94-4a83-a1cf-c040cd123d04', 'rel': 'self'}, {'href': 'http://localhost/nodes/c76fe3b6-bd94-4a83-a1cf-c040cd123d04', 'rel': 'bookmark'}]}, {'uuid': '0fabbc8d-bb2b-4197-b08a-b888b6496233', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-1', 'links': [{'href': 'http://localhost/v1/nodes/0fabbc8d-bb2b-4197-b08a-b888b6496233', 'rel': 'self'}, {'href': 'http://localhost/nodes/0fabbc8d-bb2b-4197-b08a-b888b6496233', 'rel': 'bookmark'}]}, {'uuid': 'c1a0419a-f4b7-4983-9cee-fa79e5a9bad3', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-2', 'links': [{'href': 'http://localhost/v1/nodes/c1a0419a-f4b7-4983-9cee-fa79e5a9bad3', 'rel': 'self'}, {'href': 'http://localhost/nodes/c1a0419a-f4b7-4983-9cee-fa79e5a9bad3', 'rel': 'bookmark'}]}, {'uuid': '991b67fe-4dec-4ccb-b9a6-5f170fcaf131', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-3', 'links': [{'href': 'http://localhost/v1/nodes/991b67fe-4dec-4ccb-b9a6-5f170fcaf131', 'rel': 'self'}, {'href': 'http://localhost/nodes/991b67fe-4dec-4ccb-b9a6-5f170fcaf131', 'rel': 'bookmark'}]}, {'uuid': 'c93a4dbc-d43e-44de-b520-6798a90cafbf', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-4', 'links': [{'href': 'http://localhost/v1/nodes/c93a4dbc-d43e-44de-b520-6798a90cafbf', 'rel': 'self'}, {'href': 'http://localhost/nodes/c93a4dbc-d43e-44de-b520-6798a90cafbf', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?project=54321 {} +GOT:Response: 403 Forbidden Content-Type: application/json -Location: http://localhost/v1/nodes/b642dc12-89ea-4cb8-bb2e-fdd93f679142 -Openstack-Request-Id: req-09ef34e0-3723-4565-ba9e-2b01beeb038d +Openstack-Request-Id: req-7418ae01-97a0-43a1-a31e-9b8a974701c9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "b642dc12-89ea-4cb8-bb2e-fdd93f679142", "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/b642dc12-89ea-4cb8-bb2e-fdd93f679142", "rel": "self"}, {"href": "http://localhost/nodes/b642dc12-89ea-4cb8-bb2e-fdd93f679142", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/b642dc12-89ea-4cb8-bb2e-fdd93f679142/ports", "rel": "self"}, {"href": "http://localhost/nodes/b642dc12-89ea-4cb8-bb2e-fdd93f679142/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b642dc12-89ea-4cb8-bb2e-fdd93f679142/states", "rel": "self"}, {"href": "http://localhost/nodes/b642dc12-89ea-4cb8-bb2e-fdd93f679142/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b642dc12-89ea-4cb8-bb2e-fdd93f679142/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b642dc12-89ea-4cb8-bb2e-fdd93f679142/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b642dc12-89ea-4cb8-bb2e-fdd93f679142/volume", "rel": "self"}, {"href": "http://localhost/nodes/b642dc12-89ea-4cb8-bb2e-fdd93f679142/volume", "rel": "bookmark"}]} -GET: /v1/nodes/b642dc12-89ea-4cb8-bb2e-fdd93f679142 {} -GOT:{'uuid': 'b642dc12-89ea-4cb8-bb2e-fdd93f679142', '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/b642dc12-89ea-4cb8-bb2e-fdd93f679142', 'rel': 'self'}, {'href': 'http://localhost/nodes/b642dc12-89ea-4cb8-bb2e-fdd93f679142', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/b642dc12-89ea-4cb8-bb2e-fdd93f679142/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b642dc12-89ea-4cb8-bb2e-fdd93f679142/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/b642dc12-89ea-4cb8-bb2e-fdd93f679142/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/b642dc12-89ea-4cb8-bb2e-fdd93f679142/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/b642dc12-89ea-4cb8-bb2e-fdd93f679142/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/b642dc12-89ea-4cb8-bb2e-fdd93f679142/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/b642dc12-89ea-4cb8-bb2e-fdd93f679142/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/b642dc12-89ea-4cb8-bb2e-fdd93f679142/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': '5b249b81-6847-4735-bf61-2d7e0f379cca', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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.50 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} +GET: /v1/nodes {} +GOT:{'nodes': [{'uuid': '55772f32-f9f4-4d7d-b835-a56c7a270068', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/55772f32-f9f4-4d7d-b835-a56c7a270068', 'rel': 'self'}, {'href': 'http://localhost/nodes/55772f32-f9f4-4d7d-b835-a56c7a270068', 'rel': 'bookmark'}]}, {'uuid': '03f819f6-ebc7-4861-84aa-22230ed5aabb', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/03f819f6-ebc7-4861-84aa-22230ed5aabb', 'rel': 'self'}, {'href': 'http://localhost/nodes/03f819f6-ebc7-4861-84aa-22230ed5aabb', 'rel': 'bookmark'}]}, {'uuid': 'e316a1f6-0188-4bd0-a29d-cfa1785432b2', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/e316a1f6-0188-4bd0-a29d-cfa1785432b2', 'rel': 'self'}, {'href': 'http://localhost/nodes/e316a1f6-0188-4bd0-a29d-cfa1785432b2', 'rel': 'bookmark'}]}, {'uuid': 'b0d9b53a-395d-427c-be72-3859c84c54f7', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/b0d9b53a-395d-427c-be72-3859c84c54f7', 'rel': 'self'}, {'href': 'http://localhost/nodes/b0d9b53a-395d-427c-be72-3859c84c54f7', 'rel': 'bookmark'}]}, {'uuid': '1f18f256-f667-4c4a-ac73-43fd42242196', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/1f18f256-f667-4c4a-ac73-43fd42242196', 'rel': 'self'}, {'href': 'http://localhost/nodes/1f18f256-f667-4c4a-ac73-43fd42242196', 'rel': 'bookmark'}]}, {'uuid': '8d33f4fb-9b88-4ea5-b525-469a7a637072', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/8d33f4fb-9b88-4ea5-b525-469a7a637072', 'rel': 'self'}, {'href': 'http://localhost/nodes/8d33f4fb-9b88-4ea5-b525-469a7a637072', 'rel': 'bookmark'}]}]} +GET: /v1/nodes {} +GOT:Response: 403 Forbidden Content-Type: application/json -Location: http://localhost/v1/nodes/5b249b81-6847-4735-bf61-2d7e0f379cca -Openstack-Request-Id: req-3bcd1c37-5e22-47e4-b5a9-b375925d40f6 +Openstack-Request-Id: req-fb120f02-d456-4524-9ca9-cda9f61246cb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "5b249b81-6847-4735-bf61-2d7e0f379cca", "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/5b249b81-6847-4735-bf61-2d7e0f379cca", "rel": "self"}, {"href": "http://localhost/nodes/5b249b81-6847-4735-bf61-2d7e0f379cca", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/5b249b81-6847-4735-bf61-2d7e0f379cca/ports", "rel": "self"}, {"href": "http://localhost/nodes/5b249b81-6847-4735-bf61-2d7e0f379cca/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5b249b81-6847-4735-bf61-2d7e0f379cca/states", "rel": "self"}, {"href": "http://localhost/nodes/5b249b81-6847-4735-bf61-2d7e0f379cca/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5b249b81-6847-4735-bf61-2d7e0f379cca/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5b249b81-6847-4735-bf61-2d7e0f379cca/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5b249b81-6847-4735-bf61-2d7e0f379cca/volume", "rel": "self"}, {"href": "http://localhost/nodes/5b249b81-6847-4735-bf61-2d7e0f379cca/volume", "rel": "bookmark"}]} -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.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_utils.StoreAgentCertificateTestCase.test_store_new -ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_store_new ... 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.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.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_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.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.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 -GET: /v1/nodes/5b249b81-6847-4735-bf61-2d7e0f379cca {} -GOT:{'uuid': '5b249b81-6847-4735-bf61-2d7e0f379cca', '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/5b249b81-6847-4735-bf61-2d7e0f379cca', 'rel': 'self'}, {'href': 'http://localhost/nodes/5b249b81-6847-4735-bf61-2d7e0f379cca', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/5b249b81-6847-4735-bf61-2d7e0f379cca/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/5b249b81-6847-4735-bf61-2d7e0f379cca/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/5b249b81-6847-4735-bf61-2d7e0f379cca/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/5b249b81-6847-4735-bf61-2d7e0f379cca/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/5b249b81-6847-4735-bf61-2d7e0f379cca/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/5b249b81-6847-4735-bf61-2d7e0f379cca/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/5b249b81-6847-4735-bf61-2d7e0f379cca/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/5b249b81-6847-4735-bf61-2d7e0f379cca/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': 'de09ebee-1a98-4db8-9a63-d1bd8798ba6c', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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.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-07T17:33:24.626507+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_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_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.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.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.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.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.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.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.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.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.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_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.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 +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:23.214221+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 -Location: http://localhost/v1/nodes/de09ebee-1a98-4db8-9a63-d1bd8798ba6c -Openstack-Request-Id: req-293d2784-3a5d-4f97-bb3e-af550fdf69be +Openstack-Request-Id: req-82642fa1-be28-4651-a714-8c070763fd02 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "de09ebee-1a98-4db8-9a63-d1bd8798ba6c", "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/de09ebee-1a98-4db8-9a63-d1bd8798ba6c", "rel": "self"}, {"href": "http://localhost/nodes/de09ebee-1a98-4db8-9a63-d1bd8798ba6c", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/de09ebee-1a98-4db8-9a63-d1bd8798ba6c/ports", "rel": "self"}, {"href": "http://localhost/nodes/de09ebee-1a98-4db8-9a63-d1bd8798ba6c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/de09ebee-1a98-4db8-9a63-d1bd8798ba6c/states", "rel": "self"}, {"href": "http://localhost/nodes/de09ebee-1a98-4db8-9a63-d1bd8798ba6c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/de09ebee-1a98-4db8-9a63-d1bd8798ba6c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/de09ebee-1a98-4db8-9a63-d1bd8798ba6c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/de09ebee-1a98-4db8-9a63-d1bd8798ba6c/volume", "rel": "self"}, {"href": "http://localhost/nodes/de09ebee-1a98-4db8-9a63-d1bd8798ba6c/volume", "rel": "bookmark"}]} -GET: /v1/nodes/de09ebee-1a98-4db8-9a63-d1bd8798ba6c {} -GOT:{'uuid': 'de09ebee-1a98-4db8-9a63-d1bd8798ba6c', '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/de09ebee-1a98-4db8-9a63-d1bd8798ba6c', 'rel': 'self'}, {'href': 'http://localhost/nodes/de09ebee-1a98-4db8-9a63-d1bd8798ba6c', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/de09ebee-1a98-4db8-9a63-d1bd8798ba6c/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/de09ebee-1a98-4db8-9a63-d1bd8798ba6c/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/de09ebee-1a98-4db8-9a63-d1bd8798ba6c/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/de09ebee-1a98-4db8-9a63-d1bd8798ba6c/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/de09ebee-1a98-4db8-9a63-d1bd8798ba6c/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/de09ebee-1a98-4db8-9a63-d1bd8798ba6c/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/de09ebee-1a98-4db8-9a63-d1bd8798ba6c/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/de09ebee-1a98-4db8-9a63-d1bd8798ba6c/volume', 'rel': 'bookmark'}]} -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.conductor.test_utils.StoreAgentCertificateTestCase.test_take_over -ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_take_over ... 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.drac.test_management.DracManagementTestCase.test_get_properties -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_properties ... 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.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 -POST: /v1/nodes {'uuid': '9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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.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 -Location: http://localhost/v1/nodes/9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59 -Openstack-Request-Id: req-fbd985e5-99ef-45e3-a52e-5f809713a5b4 +Openstack-Request-Id: req-95cbc7b2-8bf3-493b-b977-f159026ff0e9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59", "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/9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59", "rel": "self"}, {"href": "http://localhost/nodes/9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59/ports", "rel": "self"}, {"href": "http://localhost/nodes/9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59/states", "rel": "self"}, {"href": "http://localhost/nodes/9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59/volume", "rel": "self"}, {"href": "http://localhost/nodes/9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59/volume", "rel": "bookmark"}]} -GET: /v1/nodes/9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59 {} -GOT:{'uuid': '9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59', '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/9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59', 'rel': 'self'}, {'href': 'http://localhost/nodes/9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/9e66d7b4-ac68-4cb2-93c4-efcd0c07bb59/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': '79f43044-cb1c-41b4-8a1c-146473b3c591', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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.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_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.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.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.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.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 -GOT:Response: 200 OK +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-8872fd1d-e3d9-4c22-a082-d13dc79fb7db +Openstack-Request-Id: req-362e0f4b-069d-4d71-a6ac-81d6e41c28a5 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-06T10:57:09.717841+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 +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-8872fd1d-e3d9-4c22-a082-d13dc79fb7db -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-06T10:57:09.717841+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": "{\"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-54a21741-9507-4920-a0f7-06747ac0cc39 +Openstack-Request-Id: req-fec4c1d4-b525-42c4-a882-6a5da5913ef3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-54a21741-9507-4920-a0f7-06747ac0cc39 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-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 +{"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-4f336ca9-8b28-498f-9ddf-0b8800ec4b78 +Openstack-Request-Id: req-a5db2dd7-f9fc-458a-9b33-7c8494365a55 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-06T10:57:10.084798+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-4f336ca9-8b28-498f-9ddf-0b8800ec4b78 +{"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-146ffe77-0a3a-4c92-8482-5ef1f72cf593 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-06T10:57:10.084798+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-fb18fae4-b6fa-4780-8764-f1a1ed7c503f +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-7dc87ae9-657c-4925-8d58-259926246b68 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-06T10:57:10.305325+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-fb18fae4-b6fa-4780-8764-f1a1ed7c503f +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-0eacb57a-b5bf-49a0-b308-07ee1d6684ab 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-06T10:57:10.305325+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 +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 Content-Type: application/json -Openstack-Request-Id: req-6059527a-18c8-4ecf-9e24-2214b8e86bf2 +Openstack-Request-Id: req-5d138ee8-41b8-4943-a524-7bca22221b35 X-Openstack-Ironic-Api-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.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.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.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_boot.IloVirtualMediaBootTestCase.test_clean_up_ramdisk -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_ramdisk ... ok -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/nodes/79f43044-cb1c-41b4-8a1c-146473b3c591 -Openstack-Request-Id: req-9e578910-71ad-4535-9a22-07cf04a26edf +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-2a8374f5-598b-457c-afd9-78501ccf848e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "79f43044-cb1c-41b4-8a1c-146473b3c591", "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/79f43044-cb1c-41b4-8a1c-146473b3c591", "rel": "self"}, {"href": "http://localhost/nodes/79f43044-cb1c-41b4-8a1c-146473b3c591", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/79f43044-cb1c-41b4-8a1c-146473b3c591/ports", "rel": "self"}, {"href": "http://localhost/nodes/79f43044-cb1c-41b4-8a1c-146473b3c591/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/79f43044-cb1c-41b4-8a1c-146473b3c591/states", "rel": "self"}, {"href": "http://localhost/nodes/79f43044-cb1c-41b4-8a1c-146473b3c591/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/79f43044-cb1c-41b4-8a1c-146473b3c591/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/79f43044-cb1c-41b4-8a1c-146473b3c591/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/79f43044-cb1c-41b4-8a1c-146473b3c591/volume", "rel": "self"}, {"href": "http://localhost/nodes/79f43044-cb1c-41b4-8a1c-146473b3c591/volume", "rel": "bookmark"}]} -GET: /v1/nodes/79f43044-cb1c-41b4-8a1c-146473b3c591 {} -GOT:{'uuid': '79f43044-cb1c-41b4-8a1c-146473b3c591', '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/79f43044-cb1c-41b4-8a1c-146473b3c591', 'rel': 'self'}, {'href': 'http://localhost/nodes/79f43044-cb1c-41b4-8a1c-146473b3c591', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/79f43044-cb1c-41b4-8a1c-146473b3c591/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/79f43044-cb1c-41b4-8a1c-146473b3c591/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/79f43044-cb1c-41b4-8a1c-146473b3c591/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/79f43044-cb1c-41b4-8a1c-146473b3c591/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/79f43044-cb1c-41b4-8a1c-146473b3c591/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/79f43044-cb1c-41b4-8a1c-146473b3c591/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/79f43044-cb1c-41b4-8a1c-146473b3c591/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/79f43044-cb1c-41b4-8a1c-146473b3c591/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': 'e0d8dceb-112c-48c3-8c0d-129d484113f3', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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'} +X-Openstack-Ironic-Api-Version: 1.1 + +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} +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.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.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.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.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 GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/nodes/e0d8dceb-112c-48c3-8c0d-129d484113f3 -Openstack-Request-Id: req-64ecf606-23c8-4863-b7b6-9875e5fdfa48 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-f9136582-01ed-4253-9d6c-2915eee8b89c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "e0d8dceb-112c-48c3-8c0d-129d484113f3", "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/e0d8dceb-112c-48c3-8c0d-129d484113f3", "rel": "self"}, {"href": "http://localhost/nodes/e0d8dceb-112c-48c3-8c0d-129d484113f3", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/e0d8dceb-112c-48c3-8c0d-129d484113f3/ports", "rel": "self"}, {"href": "http://localhost/nodes/e0d8dceb-112c-48c3-8c0d-129d484113f3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e0d8dceb-112c-48c3-8c0d-129d484113f3/states", "rel": "self"}, {"href": "http://localhost/nodes/e0d8dceb-112c-48c3-8c0d-129d484113f3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e0d8dceb-112c-48c3-8c0d-129d484113f3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e0d8dceb-112c-48c3-8c0d-129d484113f3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e0d8dceb-112c-48c3-8c0d-129d484113f3/volume", "rel": "self"}, {"href": "http://localhost/nodes/e0d8dceb-112c-48c3-8c0d-129d484113f3/volume", "rel": "bookmark"}]} -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.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.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.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_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.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.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 -GET: /v1/nodes/e0d8dceb-112c-48c3-8c0d-129d484113f3 {} -GOT:{'uuid': 'e0d8dceb-112c-48c3-8c0d-129d484113f3', '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/e0d8dceb-112c-48c3-8c0d-129d484113f3', 'rel': 'self'}, {'href': 'http://localhost/nodes/e0d8dceb-112c-48c3-8c0d-129d484113f3', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/e0d8dceb-112c-48c3-8c0d-129d484113f3/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e0d8dceb-112c-48c3-8c0d-129d484113f3/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e0d8dceb-112c-48c3-8c0d-129d484113f3/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e0d8dceb-112c-48c3-8c0d-129d484113f3/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/e0d8dceb-112c-48c3-8c0d-129d484113f3/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/e0d8dceb-112c-48c3-8c0d-129d484113f3/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/e0d8dceb-112c-48c3-8c0d-129d484113f3/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/e0d8dceb-112c-48c3-8c0d-129d484113f3/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': 'e73914c7-bd13-4245-a760-a0de6ca7f0ae', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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'} +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/nodes/e73914c7-bd13-4245-a760-a0de6ca7f0ae -Openstack-Request-Id: req-ef574fe9-534a-4ed5-ac2e-07966f43ab29 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "e73914c7-bd13-4245-a760-a0de6ca7f0ae", "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/e73914c7-bd13-4245-a760-a0de6ca7f0ae", "rel": "self"}, {"href": "http://localhost/nodes/e73914c7-bd13-4245-a760-a0de6ca7f0ae", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/e73914c7-bd13-4245-a760-a0de6ca7f0ae/ports", "rel": "self"}, {"href": "http://localhost/nodes/e73914c7-bd13-4245-a760-a0de6ca7f0ae/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e73914c7-bd13-4245-a760-a0de6ca7f0ae/states", "rel": "self"}, {"href": "http://localhost/nodes/e73914c7-bd13-4245-a760-a0de6ca7f0ae/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e73914c7-bd13-4245-a760-a0de6ca7f0ae/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e73914c7-bd13-4245-a760-a0de6ca7f0ae/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e73914c7-bd13-4245-a760-a0de6ca7f0ae/volume", "rel": "self"}, {"href": "http://localhost/nodes/e73914c7-bd13-4245-a760-a0de6ca7f0ae/volume", "rel": "bookmark"}]} -GET: /v1/nodes/e73914c7-bd13-4245-a760-a0de6ca7f0ae {} -GOT:{'uuid': 'e73914c7-bd13-4245-a760-a0de6ca7f0ae', '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/e73914c7-bd13-4245-a760-a0de6ca7f0ae', 'rel': 'self'}, {'href': 'http://localhost/nodes/e73914c7-bd13-4245-a760-a0de6ca7f0ae', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/e73914c7-bd13-4245-a760-a0de6ca7f0ae/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e73914c7-bd13-4245-a760-a0de6ca7f0ae/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e73914c7-bd13-4245-a760-a0de6ca7f0ae/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e73914c7-bd13-4245-a760-a0de6ca7f0ae/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/e73914c7-bd13-4245-a760-a0de6ca7f0ae/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/e73914c7-bd13-4245-a760-a0de6ca7f0ae/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/e73914c7-bd13-4245-a760-a0de6ca7f0ae/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/e73914c7-bd13-4245-a760-a0de6ca7f0ae/volume', 'rel': 'bookmark'}]} -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.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_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.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.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.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.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.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.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.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_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.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.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_verify.DoNodeVerifyTestCase.test__do_node_cache_bios -ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios ... ok -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-d038b34e-bb17-40e8-ba67-477373c990f7 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-2cdc46bd-171e-45c7-a577-be4197750869 X-Openstack-Ironic-Api-Maximum-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 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:24.620412+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-07T17:33:24.620412+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-39955dc7-55d3-473a-a591-cb2838b52f78 +Openstack-Request-Id: req-b1a3ea48-668a-4ae5-8934-1b446be33dc7 X-Openstack-Ironic-Api-Maximum-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\": \"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-51a0ccae-5320-4844-8248-4477af28dc4f +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-b48cdb50-67a2-416f-8c69-728295563629 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:24.827187+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/ {} +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 +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-ebc9e45c-64bf-4dbd-9f79-46b1de80caa4 +Openstack-Request-Id: req-1256129c-15b2-487d-ae44-ca65ab32644e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-3b95e46a-1471-497d-b063-4f909d68fdfa +Openstack-Request-Id: req-1256129c-15b2-487d-ae44-ca65ab32644e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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'} -GOT:Response: 403 Forbidden +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d25616f1-4004-4788-ba93-9eeefff69f12 +Openstack-Request-Id: req-2fce8ebc-872f-42e1-a853-98e9e9ba4431 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-5bf79e39-b442-4805-9ede-058d8ec9d7a9 +Openstack-Request-Id: req-2fce8ebc-872f-42e1-a853-98e9e9ba4431 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-932cdf65-9f65-4be7-bf17-7648cf833ef8 +Openstack-Request-Id: req-15309ab9-25fe-4194-9688-1f8fafa74d08 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-13a33bd0-6808-4e0f-afaf-df7d934217db +Openstack-Request-Id: req-15309ab9-25fe-4194-9688-1f8fafa74d08 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: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-3f58025a-a88d-4fa8-87a5-6318002741a0 +Openstack-Request-Id: req-b159f753-5374-47db-9732-8328a051dcd4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-503e57ff-16ed-42ef-9de1-8d71f1e55f69 +Openstack-Request-Id: req-b159f753-5374-47db-9732-8328a051dcd4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 {} +{"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 Content-Type: application/json -Openstack-Request-Id: req-d2638e7a-ddc5-40a4-8a7b-fcee33d9e7d2 +Openstack-Request-Id: req-fbaaea0b-9e8b-41de-87a9-1a2e285d3aa9 X-Openstack-Ironic-Api-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 +{"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-d2b4d236-78db-4aa8-827e-570f87d9d76f +Openstack-Request-Id: req-fbaaea0b-9e8b-41de-87a9-1a2e285d3aa9 X-Openstack-Ironic-Api-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 +{"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-5acd70f7-4e76-4438-a768-155d7143ff7a +Openstack-Request-Id: req-90688ba5-6f0f-418f-bda1-d82351157a0b X-Openstack-Ironic-Api-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 +{"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-d0f5b539-0c2b-4757-b93d-03907de0aa70 +Openstack-Request-Id: req-90688ba5-6f0f-418f-bda1-d82351157a0b X-Openstack-Ironic-Api-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 +{"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-2258c624-d212-48f2-9aea-3f9c28ecf3a5 +Openstack-Request-Id: req-7533a60d-7e2a-4d03-957b-5c3083daeb07 X-Openstack-Ironic-Api-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.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.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_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.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.drac.test_management.DracManagementTestCase.test_reset_idrac -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_reset_idrac ... 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.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.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.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.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability -ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability ... ok -POST: /v1/nodes {'uuid': '963e8489-443c-4225-a734-f28db584393e', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_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 -Location: http://localhost/v1/nodes/963e8489-443c-4225-a734-f28db584393e -Openstack-Request-Id: req-4569bb78-4455-4288-bbf6-1672bbf005f7 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "963e8489-443c-4225-a734-f28db584393e", "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/963e8489-443c-4225-a734-f28db584393e", "rel": "self"}, {"href": "http://localhost/nodes/963e8489-443c-4225-a734-f28db584393e", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/963e8489-443c-4225-a734-f28db584393e/ports", "rel": "self"}, {"href": "http://localhost/nodes/963e8489-443c-4225-a734-f28db584393e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/963e8489-443c-4225-a734-f28db584393e/states", "rel": "self"}, {"href": "http://localhost/nodes/963e8489-443c-4225-a734-f28db584393e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/963e8489-443c-4225-a734-f28db584393e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/963e8489-443c-4225-a734-f28db584393e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/963e8489-443c-4225-a734-f28db584393e/volume", "rel": "self"}, {"href": "http://localhost/nodes/963e8489-443c-4225-a734-f28db584393e/volume", "rel": "bookmark"}]} -GET: /v1/nodes/963e8489-443c-4225-a734-f28db584393e {} -GOT:{'uuid': '963e8489-443c-4225-a734-f28db584393e', '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/963e8489-443c-4225-a734-f28db584393e', 'rel': 'self'}, {'href': 'http://localhost/nodes/963e8489-443c-4225-a734-f28db584393e', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/963e8489-443c-4225-a734-f28db584393e/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/963e8489-443c-4225-a734-f28db584393e/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/963e8489-443c-4225-a734-f28db584393e/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/963e8489-443c-4225-a734-f28db584393e/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/963e8489-443c-4225-a734-f28db584393e/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/963e8489-443c-4225-a734-f28db584393e/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/963e8489-443c-4225-a734-f28db584393e/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/963e8489-443c-4225-a734-f28db584393e/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-7f58a0e0-0e03-4901-8ed5-197d346b9d1c -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 -Content-Type: application/json -Openstack-Request-Id: req-77ded4b5-8b03-4edf-9f90-809516c30555 -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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot -ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot ... 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.DracRedfishRAIDTestCase.test__set_failed_clean -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_clean ... 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 -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-b0efc7ce-841f-4905-ac5f-c4e28cac0f6b -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'} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-ba11612d-a0b6-4506-b5ef-b2c94ba18f6e -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'} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-09007ef7-70e8-4cce-a0f5-93f8713b3b56 -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'} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-498a2cb4-97dd-42af-8481-20a0febbc22f -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'} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-6c8c72ac-0983-4263-a35a-4a50eadadec6 -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'} -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-a454de20-53d5-4f22-9065-71bd7e32b8f4 +Openstack-Request-Id: req-7533a60d-7e2a-4d03-957b-5c3083daeb07 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 +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 Content-Type: application/json -Openstack-Request-Id: req-fc42af33-875e-421a-862b-119d1e848a6c +Openstack-Request-Id: req-43febb33-c83d-4eb7-9b18-a27da18083d3 X-Openstack-Ironic-Api-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'} -GOT:Response: 406 Not Acceptable +{"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-d9bd5923-a80f-47f6-ab45-7d866d27864e +Openstack-Request-Id: req-43febb33-c83d-4eb7-9b18-a27da18083d3 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.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_exception -ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_exception ... 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.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.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.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.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.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.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_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false -ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false ... 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_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.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.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.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_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false_fc_target -ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false_fc_target ... 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.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.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.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_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.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_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_error -ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_error ... 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.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 +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.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.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_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_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.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.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.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.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.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_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.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 ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-00bedff8-a90a-41d2-9fc1-10b8c5830067 +Openstack-Request-Id: req-23638d8e-3bee-41e9-b38e-92389810edd5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25195,14 +21363,14 @@ 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-eaf250f2-fbd0-4c08-9af1-1895126ea6d8 +Openstack-Request-Id: req-50789ca9-796c-4075-87fb-29cea9b979c1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-eaf250f2-fbd0-4c08-9af1-1895126ea6d8 +Openstack-Request-Id: req-50789ca9-796c-4075-87fb-29cea9b979c1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25211,14 +21379,14 @@ 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-dea02a2b-6613-4305-be6f-a96189112b71 +Openstack-Request-Id: req-da4f5ae6-9461-4f79-8871-5b8abf28e390 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-dea02a2b-6613-4305-be6f-a96189112b71 +Openstack-Request-Id: req-da4f5ae6-9461-4f79-8871-5b8abf28e390 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25227,14 +21395,14 @@ 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-2f220119-5c02-4bfa-b7c1-04b0183d748e +Openstack-Request-Id: req-7a78e075-9b0b-4c5c-baca-bfb3b0348baf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-2f220119-5c02-4bfa-b7c1-04b0183d748e +Openstack-Request-Id: req-7a78e075-9b0b-4c5c-baca-bfb3b0348baf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25243,14 +21411,14 @@ 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-87be9700-f040-4233-8663-3a6ba4845204 +Openstack-Request-Id: req-300d3c9c-3225-452a-b6e0-a61a8f0ee206 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-87be9700-f040-4233-8663-3a6ba4845204 +Openstack-Request-Id: req-300d3c9c-3225-452a-b6e0-a61a8f0ee206 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25259,14 +21427,14 @@ 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-98c37e88-51bb-4ef7-b1d0-d8834fcd1c3a +Openstack-Request-Id: req-91894f32-b5e1-4f9a-b16e-984ddf5607ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-98c37e88-51bb-4ef7-b1d0-d8834fcd1c3a +Openstack-Request-Id: req-91894f32-b5e1-4f9a-b16e-984ddf5607ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25275,14 +21443,14 @@ 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-f61bcf08-5183-4592-9978-80bc9fa92ed5 +Openstack-Request-Id: req-094cd5c6-9ed3-4b24-8266-d9d530ef5f57 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-f61bcf08-5183-4592-9978-80bc9fa92ed5 +Openstack-Request-Id: req-094cd5c6-9ed3-4b24-8266-d9d530ef5f57 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25291,14 +21459,14 @@ 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-6042c706-3d86-4095-b3b3-0d9f34402668 +Openstack-Request-Id: req-d346b301-3211-4514-a21a-a02a7084d993 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-6042c706-3d86-4095-b3b3-0d9f34402668 +Openstack-Request-Id: req-d346b301-3211-4514-a21a-a02a7084d993 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25307,542 +21475,573 @@ 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-4810c990-e41d-4e55-93cb-5f38d2df31ba +Openstack-Request-Id: req-fac51aba-e910-4a9e-aaf1-4116c7746795 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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_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.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.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.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.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_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_fc -ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_fc ... 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.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.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance ... ok -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-13971d7c-3fdd-490a-99aa-585ffdb35f8f -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-06T10:57:11.377465+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"}]} +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.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.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.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.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.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_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_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:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:24.626507+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': '39da8413-9bca-4a0d-b110-471d6b0e5997', 'instance_uuid': 'abe3d412-bbe4-4c02-8978-93aa82f8e5ea', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/39da8413-9bca-4a0d-b110-471d6b0e5997', 'rel': 'self'}, {'href': 'http://localhost/nodes/39da8413-9bca-4a0d-b110-471d6b0e5997', 'rel': 'bookmark'}]}, {'uuid': 'e5b5cf8d-499d-4689-aa9b-884d229202d9', 'instance_uuid': 'f80277da-cba1-4918-b336-3971b198c0f0', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/e5b5cf8d-499d-4689-aa9b-884d229202d9', 'rel': 'self'}, {'href': 'http://localhost/nodes/e5b5cf8d-499d-4689-aa9b-884d229202d9', 'rel': 'bookmark'}]}, {'uuid': 'bd7cee72-8c9c-4c69-8ad8-25d05d813953', 'instance_uuid': 'f674fbb2-777b-43bf-b4f3-dddfc3ece81c', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/bd7cee72-8c9c-4c69-8ad8-25d05d813953', 'rel': 'self'}, {'href': 'http://localhost/nodes/bd7cee72-8c9c-4c69-8ad8-25d05d813953', '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=bd7cee72-8c9c-4c69-8ad8-25d05d813953'} +GET: /v1/nodes/detail?limit=3&associated=true {} +GOT:{'nodes': [{'uuid': '9d584b60-f823-493e-8ab5-3322182ea6d0', 'created_at': '2025-02-07T17:33:25.001429+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': 'b1c51cb2-bc8e-4fa0-ab2c-ce2c573463b1', '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/9d584b60-f823-493e-8ab5-3322182ea6d0', 'rel': 'self'}, {'href': 'http://localhost/nodes/9d584b60-f823-493e-8ab5-3322182ea6d0', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/9d584b60-f823-493e-8ab5-3322182ea6d0/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/9d584b60-f823-493e-8ab5-3322182ea6d0/ports', 'rel': 'bookmark'}]}, {'uuid': '190f42fe-b6c1-47b0-ad21-9b41e0193e6f', 'created_at': '2025-02-07T17:33:25.006736+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': '8acacc74-c3a8-4962-a89c-39edc0555855', '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/190f42fe-b6c1-47b0-ad21-9b41e0193e6f', 'rel': 'self'}, {'href': 'http://localhost/nodes/190f42fe-b6c1-47b0-ad21-9b41e0193e6f', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/190f42fe-b6c1-47b0-ad21-9b41e0193e6f/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/190f42fe-b6c1-47b0-ad21-9b41e0193e6f/ports', 'rel': 'bookmark'}]}, {'uuid': '8fd577b4-e604-4f3f-9886-26cdb037daf8', 'created_at': '2025-02-07T17:33:25.011544+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': 'd4da4371-a07d-4539-88e3-78d5b3003dab', '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/8fd577b4-e604-4f3f-9886-26cdb037daf8', 'rel': 'self'}, {'href': 'http://localhost/nodes/8fd577b4-e604-4f3f-9886-26cdb037daf8', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/8fd577b4-e604-4f3f-9886-26cdb037daf8/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/8fd577b4-e604-4f3f-9886-26cdb037daf8/ports', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes/detail?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=8fd577b4-e604-4f3f-9886-26cdb037daf8'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:57:11.377465+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 +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.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_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.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.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.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_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_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.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.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_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.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.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.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 +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.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.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.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.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.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.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.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates +ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates ... 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.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.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.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 +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:25.141964+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-07T17:33:25.250537+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-07T17:33:25.250537+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_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.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.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.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.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.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.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.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.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.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.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_utils.StoreAgentCertificateTestCase.test_no_change +ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_no_change ... ok +ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_get_arg +ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_get_arg ... 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 -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-43fe92d5-f4b8-470a-85a8-435d8dfe7426 +Openstack-Request-Id: req-dc312513-7a09-4173-ba23-7f31a4958c31 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-06T10:57:11.648839+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-06T10:57:11.648839+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.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.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 -ACL Test 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-6059527a-18c8-4ecf-9e24-2214b8e86bf2 +Openstack-Request-Id: req-dc312513-7a09-4173-ba23-7f31a4958c31 X-Openstack-Ironic-Api-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 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +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-f8de21c2-63de-41d2-b912-1205d42e88a5 +Openstack-Request-Id: req-9a9da8b4-c76d-4331-9910-addc9cccf4d3 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-06T10:57:10.687562+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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f8de21c2-63de-41d2-b912-1205d42e88a5 +Openstack-Request-Id: req-9a9da8b4-c76d-4331-9910-addc9cccf4d3 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-06T10:57:10.687562+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'}}] +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +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-fb6a6066-4a14-4f20-999c-edd765a4183b +Openstack-Request-Id: req-87e4232c-782b-4f58-9b5c-2a373177f67c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-fb6a6066-4a14-4f20-999c-edd765a4183b +Openstack-Request-Id: req-87e4232c-782b-4f58-9b5c-2a373177f67c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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: 404 Not Found +API ACL Testing Path patch /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +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-89b712d8-183d-4f81-8f81-b71ff44f4ea8 +Openstack-Request-Id: req-91b5e28c-e122-42c1-a015-be3d0337f41b X-Openstack-Ironic-Api-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 +{"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-89b712d8-183d-4f81-8f81-b71ff44f4ea8 +Openstack-Request-Id: req-91b5e28c-e122-42c1-a015-be3d0337f41b X-Openstack-Ironic-Api-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"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': '/lessee', 'value': '1234'}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-bc2373c0-06b2-4b5c-9635-7f6ddff44c90 +Openstack-Request-Id: req-c4384589-6923-4d68-b55b-3e3306fa211a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:node:update:lessee\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-bc2373c0-06b2-4b5c-9635-7f6ddff44c90 +Openstack-Request-Id: req-c4384589-6923-4d68-b55b-3e3306fa211a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:node:update:lessee\", \"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': '/lessee', 'value': '1234'}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9b289124-6f12-408a-9f99-50cc31bbc89e +Openstack-Request-Id: req-88f6e5a2-4317-4aa9-90e5-d471079702bf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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:update:lessee\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9b289124-6f12-408a-9f99-50cc31bbc89e +Openstack-Request-Id: req-88f6e5a2-4317-4aa9-90e5-d471079702bf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:lessee\", \"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': '/owner', 'value': '1234'}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-12f97133-d6d2-4013-91cb-e6361a20e70c +Openstack-Request-Id: req-37c53800-8009-4a04-874f-76946c71e94c X-Openstack-Ironic-Api-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 +{"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-12f97133-d6d2-4013-91cb-e6361a20e70c +Openstack-Request-Id: req-37c53800-8009-4a04-874f-76946c71e94c X-Openstack-Ironic-Api-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\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"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': '/owner', 'value': '1234'}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-bbdcabc6-317d-4218-b317-f0e64c38f21e +Openstack-Request-Id: req-5ee5bc16-859d-4d79-a6fd-18f92e039a1d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_iscsi -ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_iscsi ... 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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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_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.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 -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-d7448c3c-1e07-4204-b725-8b04a9e26e59 -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-06T10:57:11.872730+00:00", "updated_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"}]} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"} +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.api.test_functions.TestFunctionDefinition.test_set_arg_types +ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_set_arg_types ... 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.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.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.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.common.test_cinder.TestCinderActions.test_attach_volumes +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:25.384821+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-06T10:57:11.872730+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-4659b9db-e457-4159-a628-fb601c02b588 -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-06T10:57:12.047387+00:00", "updated_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"}]} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:25.505998+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-06T10:57:12.047387+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 -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-58aa515d-125d-4e5e-a6dc-05e023f49d2d -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-06T10:57:12.176887+00:00", "updated_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"}]} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:25.619638+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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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_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.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.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.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.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.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.api.test_functions.TestFunctionDefinition.test_signature +ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_signature ... 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.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_utils.StoreAgentCertificateTestCase.test_store_new +ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_store_new ... 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.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.common.test_context.RequestContextTestCase.test_create_context +ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context ... 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.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.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_utils.StoreAgentCertificateTestCase.test_take_over +ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_take_over ... 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.TestListNodes.test_node_boot_mode +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode ... 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.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.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.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.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.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_context.RequestContextTestCase.test_thread_with_context +ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_with_context ... 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_boot.IloVirtualMediaBootTestCase.test_validate -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate ... 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.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.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.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.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.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.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.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.common.test_context.RequestContextTestCase.test_thread_without_context +ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context ... 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 +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:25.619638+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/e501ecc4-37a0-4752-8573-31994eb797cd {} +GOT:{'uuid': 'e501ecc4-37a0-4752-8573-31994eb797cd', 'created_at': '2025-02-07T17:33:25.741654+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/e501ecc4-37a0-4752-8573-31994eb797cd', 'rel': 'self'}, {'href': 'http://localhost/nodes/e501ecc4-37a0-4752-8573-31994eb797cd', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/e501ecc4-37a0-4752-8573-31994eb797cd/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e501ecc4-37a0-4752-8573-31994eb797cd/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e501ecc4-37a0-4752-8573-31994eb797cd/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e501ecc4-37a0-4752-8573-31994eb797cd/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/e501ecc4-37a0-4752-8573-31994eb797cd/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/e501ecc4-37a0-4752-8573-31994eb797cd/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/e501ecc4-37a0-4752-8573-31994eb797cd/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/e501ecc4-37a0-4752-8573-31994eb797cd/volume', 'rel': 'bookmark'}]} +GET: /v1/nodes/a2090e99-a23e-4edc-9dfd-bdaa0e5a63c5 {} +GOT:{'uuid': 'a2090e99-a23e-4edc-9dfd-bdaa0e5a63c5', 'created_at': '2025-02-07T17:33:25.771174+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/a2090e99-a23e-4edc-9dfd-bdaa0e5a63c5', 'rel': 'self'}, {'href': 'http://localhost/nodes/a2090e99-a23e-4edc-9dfd-bdaa0e5a63c5', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/a2090e99-a23e-4edc-9dfd-bdaa0e5a63c5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a2090e99-a23e-4edc-9dfd-bdaa0e5a63c5/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/a2090e99-a23e-4edc-9dfd-bdaa0e5a63c5/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/a2090e99-a23e-4edc-9dfd-bdaa0e5a63c5/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/a2090e99-a23e-4edc-9dfd-bdaa0e5a63c5/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/a2090e99-a23e-4edc-9dfd-bdaa0e5a63c5/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/a2090e99-a23e-4edc-9dfd-bdaa0e5a63c5/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/a2090e99-a23e-4edc-9dfd-bdaa0e5a63c5/volume', 'rel': 'bookmark'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +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.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.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.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.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.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_clean_dhcp_opts +ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_clean_dhcp_opts ... 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.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.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.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.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.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.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.ibmc.test_management.IBMCManagementTestCase.test_get_properties -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_properties ... 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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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_082_nodes_traits_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_082_nodes_traits_get_admin ... 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.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.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.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.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.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.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.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.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.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.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 -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.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.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.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.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.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.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.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_modes -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_modes ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:25.855318+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-07T17:33:25.855318+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-07T17:33:25.990090+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=94eae9ea-aa69-48b2-b9f6-10e4265bb566 {} +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.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_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_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.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.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.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.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.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.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_update_dhcp +ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_update_dhcp ... 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_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 +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-7728c3e9-7013-4357-bde0-fc30a98373b9 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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-bbdcabc6-317d-4218-b317-f0e64c38f21e +Openstack-Request-Id: req-7728c3e9-7013-4357-bde0-fc30a98373b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-6296294e-ccbb-4e09-9a88-9abc2678250f +Openstack-Request-Id: req-9f179a9d-06b5-4b29-8a84-787ba23a5f88 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-6296294e-ccbb-4e09-9a88-9abc2678250f +Openstack-Request-Id: req-9f179a9d-06b5-4b29-8a84-787ba23a5f88 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 {} +{"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 Content-Type: application/json -Openstack-Request-Id: req-60612447-9bae-44e9-9ffc-7f3d4af9805a +Openstack-Request-Id: req-be8d09b4-a350-4619-b474-1c130e8297cb X-Openstack-Ironic-Api-Maximum-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-60612447-9bae-44e9-9ffc-7f3d4af9805a +Openstack-Request-Id: req-be8d09b4-a350-4619-b474-1c130e8297cb X-Openstack-Ironic-Api-Maximum-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 +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-14933a4f-6229-49d9-9fba-0450366ab55b +Openstack-Request-Id: req-b72801ef-6b14-4bcf-a78f-558503c875e3 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-14933a4f-6229-49d9-9fba-0450366ab55b +Openstack-Request-Id: req-b72801ef-6b14-4bcf-a78f-558503c875e3 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 +{"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-c0e7f32f-060a-407e-b48a-dfc001b32757 +Openstack-Request-Id: req-4b8afed9-644e-4630-a483-30b83993c7fd 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-06T10:57:12.454886+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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c0e7f32f-060a-407e-b48a-dfc001b32757 +Openstack-Request-Id: req-4b8afed9-644e-4630-a483-30b83993c7fd 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-06T10:57:12.454886+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\": \"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-39fb1d0c-c219-46b4-8877-6c39282c06e9 +Openstack-Request-Id: req-2a8655ce-ae8e-4aef-bcf9-5c108274eea2 X-Openstack-Ironic-Api-Maximum-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-39fb1d0c-c219-46b4-8877-6c39282c06e9 +Openstack-Request-Id: req-2a8655ce-ae8e-4aef-bcf9-5c108274eea2 X-Openstack-Ironic-Api-Maximum-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.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.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.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.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 +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-d4a6113b-6f37-4143-8ed2-ecc681ff03cd +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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-d4a6113b-6f37-4143-8ed2-ecc681ff03cd +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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 +Content-Type: application/json +Openstack-Request-Id: req-a7d1214b-a6cd-4002-8919-3be99e210e30 +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-a7d1214b-a6cd-4002-8919-3be99e210e30 +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-b4d3f2f9-e57d-4a6b-b95d-3ae93bf7df7c +X-Openstack-Ironic-Api-Maximum-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.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_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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail +ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail ... 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.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.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.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.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.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.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.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.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.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_cinder.TestCinderActions.test_detach_volumes +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes ... 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.conductor.test_allocations.DoAllocateTestCase.test_name_match_first +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_name_match_first ... ok ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-4810c990-e41d-4e55-93cb-5f38d2df31ba +Openstack-Request-Id: req-fac51aba-e910-4a9e-aaf1-4116c7746795 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25851,14 +22050,14 @@ 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-526e9384-f7b9-47b0-938a-c3ce3ed6bc39 +Openstack-Request-Id: req-af498a27-e4ba-4583-8044-dc1621f63708 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-526e9384-f7b9-47b0-938a-c3ce3ed6bc39 +Openstack-Request-Id: req-af498a27-e4ba-4583-8044-dc1621f63708 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25867,14 +22066,14 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a58947e2-93b0-4247-8cd9-7f7f1272fced +Openstack-Request-Id: req-478bdf89-b0ee-4f18-8beb-361bec4425ae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-a58947e2-93b0-4247-8cd9-7f7f1272fced +Openstack-Request-Id: req-478bdf89-b0ee-4f18-8beb-361bec4425ae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25883,14 +22082,14 @@ 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-4eec4cc3-c334-4583-9ce4-a9e92d6c542a +Openstack-Request-Id: req-553fc51c-a27f-456e-ad6a-a8f2662f9dfc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-4eec4cc3-c334-4583-9ce4-a9e92d6c542a +Openstack-Request-Id: req-553fc51c-a27f-456e-ad6a-a8f2662f9dfc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25899,14 +22098,14 @@ 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-70825b0c-4893-4e23-8c50-3021d2bbd045 +Openstack-Request-Id: req-f83ba447-79d6-4755-b416-d6ad846a1727 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-70825b0c-4893-4e23-8c50-3021d2bbd045 +Openstack-Request-Id: req-f83ba447-79d6-4755-b416-d6ad846a1727 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25915,14 +22114,14 @@ 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-30706da0-c6f9-4fd7-a9f5-d88a03f3b5fb +Openstack-Request-Id: req-78d1105d-4a45-4d78-bda2-17642e7b7345 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-30706da0-c6f9-4fd7-a9f5-d88a03f3b5fb +Openstack-Request-Id: req-78d1105d-4a45-4d78-bda2-17642e7b7345 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25931,14 +22130,14 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-74f28433-7dd1-4a11-99bf-8e8fbc593bb1 +Openstack-Request-Id: req-a9f919b3-d5da-4413-b219-7b60c791c9d6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-74f28433-7dd1-4a11-99bf-8e8fbc593bb1 +Openstack-Request-Id: req-a9f919b3-d5da-4413-b219-7b60c791c9d6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25947,14 +22146,14 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f467b194-f212-49e3-b9c4-dbbbe073f788 +Openstack-Request-Id: req-15e46714-4525-47c4-9236-47de92b53ce2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-f467b194-f212-49e3-b9c4-dbbbe073f788 +Openstack-Request-Id: req-15e46714-4525-47c4-9236-47de92b53ce2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25963,596 +22162,609 @@ 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-7173dc2f-9785-475f-8d6b-60b376bb0e70 +Openstack-Request-Id: req-3093ac25-40f1-4fd2-9931-3b4a573e97c2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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_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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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 -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 +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__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_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_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.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 +GOT:{'nodes': [{'uuid': '6f204d32-88a9-4070-84c2-19500eab930d', 'instance_uuid': '94eae9ea-aa69-48b2-b9f6-10e4265bb566', 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/6f204d32-88a9-4070-84c2-19500eab930d', 'rel': 'self'}, {'href': 'http://localhost/nodes/6f204d32-88a9-4070-84c2-19500eab930d', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?instance_uuid=fake {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-b1add4a1-abd7-45d7-aecf-6831d75b8acb +Openstack-Request-Id: req-00f8dee9-2316-4d9e-9637-a9825ff4d0f3 X-Openstack-Ironic-Api-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 +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=63e00d88-fbc4-43d4-9afd-c92db441e66f {} +GOT:{'nodes': []} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:26.433785+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-07T17:33:26.433785+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-07T17:33:26.532172+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.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.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_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.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.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.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_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_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.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.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.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.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.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.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_deployments.DoNodeDeployTestCase.test_start_deploy +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy ... 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.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_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.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.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.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_cleaning +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_cleaning ... ok +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +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.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_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 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:26.532172+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-07T17:33:26.717222+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-07T17:33:26.717222+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.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version +ironic.tests.unit.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version ... 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 +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +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.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.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.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_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.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.conductor.test_allocations.DoAllocateTestCase.test_nodes_locked +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_locked ... ok +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6ff8d8d0-fc52-4ffe-9adf-1a16f42f1072 +Openstack-Request-Id: req-5ee5bc16-859d-4d79-a6fd-18f92e039a1d X-Openstack-Ironic-Api-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:node:update:owner\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +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-75c05792-2811-4c76-b29a-5aebfd4e0c14 +Openstack-Request-Id: req-c59d4853-91d8-48d7-9056-fef9a4d0f7b2 X-Openstack-Ironic-Api-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-abe1bfb6-465c-4e0b-9ea1-e8239bce8b0d +Openstack-Request-Id: req-c59d4853-91d8-48d7-9056-fef9a4d0f7b2 X-Openstack-Ironic-Api-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +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-57689f80-0d3e-4eab-a2fc-c196d7f67aa1 +Openstack-Request-Id: req-bfc1f986-c470-4993-925e-016ac310f871 X-Openstack-Ironic-Api-Maximum-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-1ff48ab5-6432-440d-aa93-acfb4f83e0d2 +Openstack-Request-Id: req-bfc1f986-c470-4993-925e-016ac310f871 X-Openstack-Ironic-Api-Maximum-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +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-7c5345c8-efba-4a19-8abb-f84bb179b7fc +Openstack-Request-Id: req-4cfaed8e-57a0-431f-a5cd-d2a184c38c82 X-Openstack-Ironic-Api-Maximum-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:node:update:owner\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-906f642c-2110-4cdb-a560-d68fd82d745a +Openstack-Request-Id: req-4cfaed8e-57a0-431f-a5cd-d2a184c38c82 X-Openstack-Ironic-Api-Maximum-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:node:update:owner\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +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-a50883d1-3e47-47ed-9ab5-8e01dfdf1faf +Openstack-Request-Id: req-e37b6310-df24-45d5-9542-3a1cd5e8cab4 X-Openstack-Ironic-Api-Maximum-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:node:update:owner\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c11d8fbb-b902-492d-92e1-8af387bfbb5f +Openstack-Request-Id: req-e37b6310-df24-45d5-9542-3a1cd5e8cab4 X-Openstack-Ironic-Api-Maximum-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 {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"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': '/protected', 'value': True}] +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7b0e20b8-e514-41a9-a98c-a6fca26e0edc +Openstack-Request-Id: req-d1b2e392-eda6-4f2c-8795-8633fff7661a X-Openstack-Ironic-Api-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: 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-9349f40f-196b-4f38-bf21-afbf3636ea4f +Openstack-Request-Id: req-d1b2e392-eda6-4f2c-8795-8633fff7661a X-Openstack-Ironic-Api-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: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"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'}}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-64ad561c-e357-4f58-9363-ff9488756e8d +Openstack-Request-Id: req-b4dfa686-5470-4004-8738-ed096ce97a59 X-Openstack-Ironic-Api-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: 404 Not Found +{"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-bcb657cb-2c1d-4ab6-b0b9-229c84ad21e5 +Openstack-Request-Id: req-b4dfa686-5470-4004-8738-ed096ce97a59 X-Openstack-Ironic-Api-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 {} -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_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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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_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.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.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.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.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_deploy_info -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_deploy_info ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T10:57:12.176887+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-e1685ca9-41f6-43a6-ace8-c427fb07f7bb -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 -Content-Type: application/json -Openstack-Request-Id: req-f652ccf4-a256-4fef-9af7-dbeeaffc4d11 -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'} +{"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': '/driver_info', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8adc79e4-9139-4fae-84d6-028b613c5385 +Openstack-Request-Id: req-cbaef0fa-30da-4df7-a702-1f197247d048 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 +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-4c4b882e-20aa-4dc7-a7b9-65fa1484407c +Openstack-Request-Id: req-cbaef0fa-30da-4df7-a702-1f197247d048 X-Openstack-Ironic-Api-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'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:driver_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': '/properties', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b4aab285-f062-4f08-a696-bdf1c821e61e +Openstack-Request-Id: req-41226aca-2810-42a9-85b4-498fd842bbbe X-Openstack-Ironic-Api-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-a7a52cf8-2503-48cb-b60e-54ae8170510c -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-e28b3b50-69a5-4115-b2b4-d973bdc7a430 -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-9f6e0344-6691-410c-9563-eebcbb504ac2 -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 -Content-Type: application/json -Openstack-Request-Id: req-6accc89f-fb73-431d-a42f-a07cbb8442ff -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-ac1d0696-42dc-4458-9cf1-d9f36c4b7776 -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.api.controllers.v1.test_node.TestPost.test_vendor_passthru_sync -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_sync ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:properties\", \"debuginfo\": null}"} +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.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.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.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.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_allocations.DoAllocateTestCase.test_success +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_success ... 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.cmd.test_status.TestUpgradeChecks.test__check_obj_versions +ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_obj_versions ... 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.conductor.test_base_manager.MiscTestCase.test__fail_transient_state_maintenance +ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state_maintenance ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:26.839710+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-07T17:33:26.946803+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-07T17:33:26.946803+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.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.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.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_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.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.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_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.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.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.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.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_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.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.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.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_add_certificates_false -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_false ... 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.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.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.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.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.conductor.test_allocations.DoAllocateTestCase.test_with_candidates +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_candidates ... 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_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.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.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.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.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.conductor.test_allocations.DoAllocateTestCase.test_with_traits +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_traits ... 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.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.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.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.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.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.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.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.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_add_certificates_invalid -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_invalid ... 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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.dhcp.test_neutron.TestNeutron.test_get_ip_addresses +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses ... 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.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 +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:27.091713+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-07T17:33:27.091713+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-07T17:33:27.239271+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_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.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_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.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.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.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.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces ... 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.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.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.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.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.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.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.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.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_common.IloCommonMethodsTestCase.test_add_certificates_true -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true ... 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.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.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.dhcp.test_neutron.TestNeutron.test_update_dhcp +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp ... 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.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.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_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.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.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.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.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 +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:27.358636+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-07T17:33:27.358636+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-07T17:33:27.479573+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.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.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails ... 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.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_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.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.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.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_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_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.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.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.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.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.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.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.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.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.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.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 +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:27.613916+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/c1605172-1ad2-4084-b6a6-ef6fe8bb3dd9 {} +GOT:{'uuid': 'c1605172-1ad2-4084-b6a6-ef6fe8bb3dd9', 'created_at': '2025-02-07T17:33:27.736517+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/c1605172-1ad2-4084-b6a6-ef6fe8bb3dd9', 'rel': 'self'}, {'href': 'http://localhost/nodes/c1605172-1ad2-4084-b6a6-ef6fe8bb3dd9', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/c1605172-1ad2-4084-b6a6-ef6fe8bb3dd9/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c1605172-1ad2-4084-b6a6-ef6fe8bb3dd9/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/c1605172-1ad2-4084-b6a6-ef6fe8bb3dd9/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/c1605172-1ad2-4084-b6a6-ef6fe8bb3dd9/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/c1605172-1ad2-4084-b6a6-ef6fe8bb3dd9/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/c1605172-1ad2-4084-b6a6-ef6fe8bb3dd9/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/c1605172-1ad2-4084-b6a6-ef6fe8bb3dd9/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/c1605172-1ad2-4084-b6a6-ef6fe8bb3dd9/volume', 'rel': 'bookmark'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +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.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_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry +ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry ... 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.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.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.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.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network ... ok +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-b4d3f2f9-e57d-4a6b-b95d-3ae93bf7df7c +X-Openstack-Ironic-Api-Maximum-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-5aebcbaa-31df-4ef8-ae0a-9de6e4b7488f +Openstack-Request-Id: req-44812761-413e-49f5-8592-fcb7aa09a27a 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-06T10:57:12.726099+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-5aebcbaa-31df-4ef8-ae0a-9de6e4b7488f +Openstack-Request-Id: req-44812761-413e-49f5-8592-fcb7aa09a27a 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-06T10:57:12.726099+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 +{"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-de1728f9-7c66-4767-ab45-49f2677d89cc +Openstack-Request-Id: req-ed873d20-4b4e-44d1-9b56-f3dab8dfdbf0 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-de1728f9-7c66-4767-ab45-49f2677d89cc +Openstack-Request-Id: req-ed873d20-4b4e-44d1-9b56-f3dab8dfdbf0 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}"} +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-6735eda7-a95a-4cfe-bb92-18e2dde5c60b +X-Openstack-Ironic-Api-Maximum-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-6735eda7-a95a-4cfe-bb92-18e2dde5c60b +X-Openstack-Ironic-Api-Maximum-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-05511dab-2527-4f9c-81f8-9e555e73f53a +Openstack-Request-Id: req-9ae3204e-772c-4d35-a9d6-621b50ab1085 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:node:traits:set\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-05511dab-2527-4f9c-81f8-9e555e73f53a +Openstack-Request-Id: req-9ae3204e-772c-4d35-a9d6-621b50ab1085 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: 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-d21f0b8d-e9bf-4bfc-b3c8-13dc29d7f032 +Openstack-Request-Id: req-986373bc-101a-4084-8b84-80fa4cb6c97c 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-d21f0b8d-e9bf-4bfc-b3c8-13dc29d7f032 +Openstack-Request-Id: req-986373bc-101a-4084-8b84-80fa4cb6c97c 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 +{"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-6b8dfff3-756d-4fd1-bd23-073cf4330deb +Openstack-Request-Id: req-7c8ac532-566d-46e0-b1ce-77178e215ed5 X-Openstack-Ironic-Api-Maximum-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 +{"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-6b8dfff3-756d-4fd1-bd23-073cf4330deb +Openstack-Request-Id: req-7c8ac532-566d-46e0-b1ce-77178e215ed5 X-Openstack-Ironic-Api-Maximum-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'} +{"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-80c6aafc-35bd-4974-87b9-7a695e38598c +Openstack-Request-Id: req-37a21766-7c46-439d-90e4-bb12cfe11e95 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:node:traits:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-80c6aafc-35bd-4974-87b9-7a695e38598c +Openstack-Request-Id: req-37a21766-7c46-439d-90e4-bb12cfe11e95 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: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-bc36723c-c7b6-4645-aff6-b0d5d8b5a8e6 +Openstack-Request-Id: req-d334571b-5fcb-4031-b431-f67d9a556677 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-bc36723c-c7b6-4645-aff6-b0d5d8b5a8e6 +Openstack-Request-Id: req-d334571b-5fcb-4031-b431-f67d9a556677 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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.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.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.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_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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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 +{"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.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.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.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.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.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.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.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 +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:27.876374+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-07T17:33:27.876374+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-07T17:33:28.060221+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.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_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_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts +ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts ... 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.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 ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7173dc2f-9785-475f-8d6b-60b376bb0e70 +Openstack-Request-Id: req-3093ac25-40f1-4fd2-9931-3b4a573e97c2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -26561,14 +22773,14 @@ 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-c885f25e-93b0-42a0-ac9a-e84ec59fddb4 +Openstack-Request-Id: req-f534260e-c8e8-4917-97a8-aa34941e6b66 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-c885f25e-93b0-42a0-ac9a-e84ec59fddb4 +Openstack-Request-Id: req-f534260e-c8e8-4917-97a8-aa34941e6b66 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -26577,14 +22789,14 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-5307855f-6191-4092-9673-26a60a124516 +Openstack-Request-Id: req-27b654f7-f5a8-4b0a-9f41-34f922272474 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-5307855f-6191-4092-9673-26a60a124516 +Openstack-Request-Id: req-27b654f7-f5a8-4b0a-9f41-34f922272474 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -26593,14 +22805,14 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-67d7d1c1-461c-4df7-b3d4-f5ebf96fcf15 +Openstack-Request-Id: req-09510bf9-a7a2-4b1a-97c3-06ef053e674d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-67d7d1c1-461c-4df7-b3d4-f5ebf96fcf15 +Openstack-Request-Id: req-09510bf9-a7a2-4b1a-97c3-06ef053e674d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -26609,14 +22821,14 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b3a49c76-dad3-4ec7-94e9-e2dd4088b943 +Openstack-Request-Id: req-4ab73156-dbdb-4979-88a2-b9083ce67d1f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-b3a49c76-dad3-4ec7-94e9-e2dd4088b943 +Openstack-Request-Id: req-4ab73156-dbdb-4979-88a2-b9083ce67d1f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -26625,14 +22837,14 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c20e1e4a-1caf-4406-8669-734d4276b40e +Openstack-Request-Id: req-8f259a03-2e0e-489d-9c3f-9a6ca357cab6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-c20e1e4a-1caf-4406-8669-734d4276b40e +Openstack-Request-Id: req-8f259a03-2e0e-489d-9c3f-9a6ca357cab6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -26641,14 +22853,14 @@ 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-970c1b65-0875-4e17-bb42-e3965a9007d7 +Openstack-Request-Id: req-043a6ec7-0220-4417-9798-8b30c3619798 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-970c1b65-0875-4e17-bb42-e3965a9007d7 +Openstack-Request-Id: req-043a6ec7-0220-4417-9798-8b30c3619798 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -26657,14 +22869,14 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8f3060a4-5b71-4dfe-911a-929ba4b9a29d +Openstack-Request-Id: req-cca0faf9-58ff-4b82-90fb-2e22ba2cf2ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-8f3060a4-5b71-4dfe-911a-929ba4b9a29d +Openstack-Request-Id: req-cca0faf9-58ff-4b82-90fb-2e22ba2cf2ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -26673,441 +22885,600 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2b1baf7f-0a11-469a-ac09-dbea1fd49c76 +Openstack-Request-Id: req-98a4c8dd-26bc-4906-9b67-8d0026c79767 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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_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.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.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_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.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.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.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.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.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_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.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.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_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.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.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.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.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.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.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.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.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.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_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.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.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_node.TestListNodes.test_node_owner_present +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_present ... 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.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.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_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.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.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_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.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.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.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.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.irmc.test_management.IRMCManagementTestCase.test_get_properties -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_get_properties ... 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.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.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_manager.DoNodeAdoptionTestCase.test__do_adoption_ramdisk_deploy +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_ramdisk_deploy ... 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.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.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.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.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_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:28.060221+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-07T17:33:28.320857+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-07T17:33:28.460051+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/b4be5229-319e-4eb5-9905-a1fa394f6d9d {} +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.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.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.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.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_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_states.StatesTest.test_state_values_length +ironic.tests.unit.common.test_states.StatesTest.test_state_values_length ... 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.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.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.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.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.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.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.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.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.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.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.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 -GOT:Response: 200 OK +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.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.conductor.test_allocations.BackfillAllocationTestCase.test_candidate_nodes_mismatch +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_candidate_nodes_mismatch ... ok +GOT:{'uuid': 'b4be5229-319e-4eb5-9905-a1fa394f6d9d', 'created_at': '2025-02-07T17:33:28.584482+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/b4be5229-319e-4eb5-9905-a1fa394f6d9d', 'rel': 'self'}, {'href': 'http://localhost/nodes/b4be5229-319e-4eb5-9905-a1fa394f6d9d', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/b4be5229-319e-4eb5-9905-a1fa394f6d9d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b4be5229-319e-4eb5-9905-a1fa394f6d9d/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/b4be5229-319e-4eb5-9905-a1fa394f6d9d/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/b4be5229-319e-4eb5-9905-a1fa394f6d9d/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/b4be5229-319e-4eb5-9905-a1fa394f6d9d/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/b4be5229-319e-4eb5-9905-a1fa394f6d9d/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/b4be5229-319e-4eb5-9905-a1fa394f6d9d/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/b4be5229-319e-4eb5-9905-a1fa394f6d9d/volume', 'rel': 'bookmark'}]} +GET: /v1/nodes/a49577e1-4af7-49a1-84e8-0dcce57b565d {} +GOT:{'uuid': 'a49577e1-4af7-49a1-84e8-0dcce57b565d', 'created_at': '2025-02-07T17:33:28.628030+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/a49577e1-4af7-49a1-84e8-0dcce57b565d', 'rel': 'self'}, {'href': 'http://localhost/nodes/a49577e1-4af7-49a1-84e8-0dcce57b565d', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/a49577e1-4af7-49a1-84e8-0dcce57b565d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a49577e1-4af7-49a1-84e8-0dcce57b565d/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/a49577e1-4af7-49a1-84e8-0dcce57b565d/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/a49577e1-4af7-49a1-84e8-0dcce57b565d/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/a49577e1-4af7-49a1-84e8-0dcce57b565d/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/a49577e1-4af7-49a1-84e8-0dcce57b565d/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/a49577e1-4af7-49a1-84e8-0dcce57b565d/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/a49577e1-4af7-49a1-84e8-0dcce57b565d/volume', 'rel': 'bookmark'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:28.743110+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_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.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.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.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.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus ... 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_manager.DoNodeAdoptionTestCase.test__do_adoption_with_takeover +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_with_takeover ... 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.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.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_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.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.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_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.conductor.test_allocations.BackfillAllocationTestCase.test_non_existing_node +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_non_existing_node ... 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.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.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.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.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate ... ok +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-65fc5d80-a60f-4c8a-916d-3355c96e3e50 +Openstack-Request-Id: req-41226aca-2810-42a9-85b4-498fd842bbbe 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'} -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:properties\", \"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': '/network_data', 'value': {'links': [], 'networks': [], 'services': []}}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-5b151cb4-1ec3-43d2-bd0f-1e3afd439f0c +Openstack-Request-Id: req-19ea0a67-b45a-4480-8d93-8442e26e0fd3 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/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-3f54c09b-a2db-48de-a435-83e934204f31 -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'} -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:network_data\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a0b37cec-abdb-4686-8cec-f3b9ae6ccb97 +Openstack-Request-Id: req-19ea0a67-b45a-4480-8d93-8442e26e0fd3 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'} -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:network_data\", \"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': '/name', 'value': 'meow-node-1'}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c74e9c4d-cfb0-435f-9632-ec3d624743f3 +Openstack-Request-Id: req-7a26fd31-ac14-499e-a413-91bb80ceb70b 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-31e2c188-2427-4e4d-8607-8f82b1579e8d +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-7a26fd31-ac14-499e-a413-91bb80ceb70b 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': 'adopt'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-9acfdec0-c74e-4465-aa9f-2d8a0849bfd8 +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}"} +API ACL Testing Path patch /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f +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-b64846ff-34e9-43e3-8504-48332eb55aa7 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': 'adopt'} -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:retired\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-41dfedb8-79af-4379-9223-9884053667c3 +Openstack-Request-Id: req-b64846ff-34e9-43e3-8504-48332eb55aa7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.16 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} -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:retired\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +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-070b41da-3f48-43ed-9aa3-e2f6e39ebb83 +Openstack-Request-Id: req-a3993157-228b-45ce-ba0c-feada1884b43 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 \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild'} -GOT:Response: 400 Bad Request +X-Openstack-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-c9ab7eaa-71ac-45f7-bcbc-14f7770d7533 +Openstack-Request-Id: req-a3993157-228b-45ce-ba0c-feada1884b43 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 \\\"rebuild\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted'} -GOT:Response: 400 Bad Request +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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +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-9ded6d01-a88b-4867-b7d0-059b38bb2c0f +Openstack-Request-Id: req-82d4b520-55ac-4db1-845e-d0f094bd1826 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 \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} -GOT:Response: 400 Bad Request +X-Openstack-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-9467b7e6-419c-4527-91bd-0369b8968977 +Openstack-Request-Id: req-82d4b520-55ac-4db1-845e-d0f094bd1826 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 \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild'} -GOT:Response: 400 Bad Request +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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +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-08fbf9fb-024a-49f8-aa32-654e888f04b2 +Openstack-Request-Id: req-d2d0362e-9737-4c70-b040-1238f6a77e15 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 \\\"rebuild\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted'} -GOT:Response: 400 Bad Request +X-Openstack-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-07164e97-64bf-4496-af9f-2503ed843a7b +Openstack-Request-Id: req-d2d0362e-9737-4c70-b040-1238f6a77e15 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 \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} -GOT:Response: 400 Bad Request +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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +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-e78cdb6d-468f-457c-9baf-b9ff836f6a5d +Openstack-Request-Id: req-26723bbb-586e-490e-bb7e-facfe0ce67cf 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 \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} -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_instance_info\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-19395d3c-6dd0-4f15-8298-4deaa0ac5194 +Openstack-Request-Id: req-26723bbb-586e-490e-bb7e-facfe0ce67cf 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 \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"} -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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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_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.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.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 -GOT:Response: 200 OK +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.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_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_allocations.BackfillAllocationTestCase.test_resource_class_mismatch +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_resource_class_mismatch ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:28.743110+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-07T17:33:28.857615+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-07T17:33:28.857615+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.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.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.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.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.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.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.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.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.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.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_node.TestListNodes.test_node_retired +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired ... 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.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.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.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.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 +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:29.030886+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/b510370f-2383-49e3-97b2-dd82e95983db {} +GOT:{'uuid': 'b510370f-2383-49e3-97b2-dd82e95983db', 'created_at': '2025-02-07T17:33:29.168610+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/b510370f-2383-49e3-97b2-dd82e95983db', 'rel': 'self'}, {'href': 'http://localhost/nodes/b510370f-2383-49e3-97b2-dd82e95983db', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/b510370f-2383-49e3-97b2-dd82e95983db/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b510370f-2383-49e3-97b2-dd82e95983db/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/b510370f-2383-49e3-97b2-dd82e95983db/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/b510370f-2383-49e3-97b2-dd82e95983db/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/b510370f-2383-49e3-97b2-dd82e95983db/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/b510370f-2383-49e3-97b2-dd82e95983db/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/b510370f-2383-49e3-97b2-dd82e95983db/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/b510370f-2383-49e3-97b2-dd82e95983db/volume', 'rel': 'bookmark'}]} +GET: /v1/nodes/f31c3332-414b-48ba-88d3-cb8a1efff113 {} +GOT:{'uuid': 'f31c3332-414b-48ba-88d3-cb8a1efff113', 'created_at': '2025-02-07T17:33:29.203137+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/f31c3332-414b-48ba-88d3-cb8a1efff113', 'rel': 'self'}, {'href': 'http://localhost/nodes/f31c3332-414b-48ba-88d3-cb8a1efff113', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/f31c3332-414b-48ba-88d3-cb8a1efff113/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/f31c3332-414b-48ba-88d3-cb8a1efff113/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/f31c3332-414b-48ba-88d3-cb8a1efff113/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/f31c3332-414b-48ba-88d3-cb8a1efff113/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/f31c3332-414b-48ba-88d3-cb8a1efff113/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/f31c3332-414b-48ba-88d3-cb8a1efff113/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/f31c3332-414b-48ba-88d3-cb8a1efff113/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/f31c3332-414b-48ba-88d3-cb8a1efff113/volume', 'rel': 'bookmark'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +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.conductor.test_allocations.BackfillAllocationTestCase.test_traits_mismatch +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_traits_mismatch ... 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.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.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.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.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_deployments.DoNextDeployStepTestCase.test_continue_node_deploy +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy ... 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.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.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_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.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_neutron.NeutronInterfaceTestCase.test_vif_attach +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:29.297890+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-07T17:33:29.297890+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-07T17:33:29.509482+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.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.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_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_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.common.test_policy.PolicyTestCase.test_authorize_access_forbidden +ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_access_forbidden ... 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_allocations.BackfillAllocationTestCase.test_with_associated_node +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_associated_node ... 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.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach ... 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.common.test_policy.PolicyTestCase.test_authorize_passes +ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_passes ... 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.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_allocations.BackfillAllocationTestCase.test_with_candidate_nodes +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_candidate_nodes ... 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.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.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.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.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.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.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.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.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_allocations.BackfillAllocationTestCase.test_with_unassociated_node +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_unassociated_node ... 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.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 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-084eb371-c2e6-4ff1-8506-14da101906e1 +Openstack-Request-Id: req-8a1091db-2bb6-4676-91f0-b6d5b5b1be04 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-06T10:57:13.505059+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\": \"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-084eb371-c2e6-4ff1-8506-14da101906e1 +Openstack-Request-Id: req-8a1091db-2bb6-4676-91f0-b6d5b5b1be04 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-06T10:57:13.505059+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 {} +{"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-1c1f40ff-4ada-4b38-b1a7-68a953d4d852 +Openstack-Request-Id: req-f97ec828-a3b3-4177-a5ec-7bc1c5d95c5a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:node:traits:set\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1c1f40ff-4ada-4b38-b1a7-68a953d4d852 +Openstack-Request-Id: req-f97ec828-a3b3-4177-a5ec-7bc1c5d95c5a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: 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-426bb2ef-7f67-4905-8217-353c9fb8fde9 +Openstack-Request-Id: req-0192bbdb-bbe9-4729-bb65-5b4fddfd0931 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-06T10:57:13.909714+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}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-426bb2ef-7f67-4905-8217-353c9fb8fde9 +Openstack-Request-Id: req-0192bbdb-bbe9-4729-bb65-5b4fddfd0931 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-06T10:57:13.909714+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}"} +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-48da43b7-68d2-49cd-8808-5977e03ef449 +Openstack-Request-Id: req-12d4875c-c480-41ef-8aea-3263316ec399 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-06T10:57:14.043743+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\": \"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-48da43b7-68d2-49cd-8808-5977e03ef449 +Openstack-Request-Id: req-12d4875c-c480-41ef-8aea-3263316ec399 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-06T10:57:14.043743+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 {} +{"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-ca68e551-17b3-40bb-992b-f5be391b7546 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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-ca68e551-17b3-40bb-992b-f5be391b7546 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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-8da99fe9-5382-44d9-b7fd-d6b94dfeb967 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-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-8da99fe9-5382-44d9-b7fd-d6b94dfeb967 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8dae2708-7f68-491a-9474-57504c4af941 +Openstack-Request-Id: req-73764d70-ae9f-4e95-a428-0b3e3fd2699d X-Openstack-Ironic-Api-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-8dae2708-7f68-491a-9474-57504c4af941 +Openstack-Request-Id: req-73764d70-ae9f-4e95-a428-0b3e3fd2699d X-Openstack-Ironic-Api-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.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.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.test_base.TestBIOSInterface.test_apply_configuration_wrapper -ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper ... 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_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.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper -ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper ... 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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.controllers.v1.test_node.TestPut.test_clean -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean ... 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.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.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.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.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_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.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.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.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.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.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.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 +{"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 +Content-Type: application/json +Openstack-Request-Id: req-a3711964-90eb-44d8-99b9-eda210c162cc +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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 +Content-Type: application/json +Openstack-Request-Id: req-a3711964-90eb-44d8-99b9-eda210c162cc +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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'} +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-0d42d43f-0d34-4dc9-8d44-0015dd497a9b +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-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_100_nodes_vifs_post_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_100_nodes_vifs_post_admin ... 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_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace +ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:29.509482+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-07T17:33:29.674992+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/8a3de696-295b-4358-9280-214a3c648b2d {} +GOT:{'uuid': '8a3de696-295b-4358-9280-214a3c648b2d', 'created_at': '2025-02-07T17:33:29.775690+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/8a3de696-295b-4358-9280-214a3c648b2d', 'rel': 'self'}, {'href': 'http://localhost/nodes/8a3de696-295b-4358-9280-214a3c648b2d', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/8a3de696-295b-4358-9280-214a3c648b2d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/8a3de696-295b-4358-9280-214a3c648b2d/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/8a3de696-295b-4358-9280-214a3c648b2d/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/8a3de696-295b-4358-9280-214a3c648b2d/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/8a3de696-295b-4358-9280-214a3c648b2d/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/8a3de696-295b-4358-9280-214a3c648b2d/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/8a3de696-295b-4358-9280-214a3c648b2d/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/8a3de696-295b-4358-9280-214a3c648b2d/volume', 'rel': 'bookmark'}]} +GET: /v1/nodes/b76e8f19-2682-4a34-a521-f71143d8e908 {} +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.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.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.test_base.TestManagementInterface.test_get_mac_addresses -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_mac_addresses ... 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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_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.DoNodeRescueTestCase.test__do_node_rescue_abort +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort ... 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.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 +GOT:{'uuid': 'b76e8f19-2682-4a34-a521-f71143d8e908', 'created_at': '2025-02-07T17:33:29.814010+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/b76e8f19-2682-4a34-a521-f71143d8e908', 'rel': 'self'}, {'href': 'http://localhost/nodes/b76e8f19-2682-4a34-a521-f71143d8e908', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/b76e8f19-2682-4a34-a521-f71143d8e908/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b76e8f19-2682-4a34-a521-f71143d8e908/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/b76e8f19-2682-4a34-a521-f71143d8e908/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/b76e8f19-2682-4a34-a521-f71143d8e908/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/b76e8f19-2682-4a34-a521-f71143d8e908/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/b76e8f19-2682-4a34-a521-f71143d8e908/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/b76e8f19-2682-4a34-a521-f71143d8e908/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/b76e8f19-2682-4a34-a521-f71143d8e908/volume', 'rel': 'bookmark'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:29.923563+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-07T17:33:29.923563+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.TestListNodes.test_node_states +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states ... ok ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2b1baf7f-0a11-469a-ac09-dbea1fd49c76 +Openstack-Request-Id: req-98a4c8dd-26bc-4906-9b67-8d0026c79767 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27116,14 +23487,14 @@ 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-51d06417-0638-4592-af5d-c2722cdd9e1b +Openstack-Request-Id: req-bad8035e-52bb-43a8-8dfb-d506cb6eae47 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-51d06417-0638-4592-af5d-c2722cdd9e1b +Openstack-Request-Id: req-bad8035e-52bb-43a8-8dfb-d506cb6eae47 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27132,14 +23503,14 @@ 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-770bce04-1ed8-4f24-8eef-04d06b1558a0 +Openstack-Request-Id: req-32cc6529-efb9-45e2-8781-884503d9494a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-770bce04-1ed8-4f24-8eef-04d06b1558a0 +Openstack-Request-Id: req-32cc6529-efb9-45e2-8781-884503d9494a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27148,14 +23519,14 @@ 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-04d7fa61-c059-4fff-98a1-fb4bbb9b8ecf +Openstack-Request-Id: req-31272fba-f794-4758-92f6-468cfad2d39f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-04d7fa61-c059-4fff-98a1-fb4bbb9b8ecf +Openstack-Request-Id: req-31272fba-f794-4758-92f6-468cfad2d39f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27164,14 +23535,14 @@ 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-747013a6-e694-4104-8236-7175b5238376 +Openstack-Request-Id: req-357b975c-3299-4312-8751-71e7cbb6c13e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-747013a6-e694-4104-8236-7175b5238376 +Openstack-Request-Id: req-357b975c-3299-4312-8751-71e7cbb6c13e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27180,14 +23551,14 @@ 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-827636f9-0b7f-416d-903b-fa14f4ac6df8 +Openstack-Request-Id: req-1ddaa52b-a8b1-4ae5-931f-405d07a8b746 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-827636f9-0b7f-416d-903b-fa14f4ac6df8 +Openstack-Request-Id: req-1ddaa52b-a8b1-4ae5-931f-405d07a8b746 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27196,14 +23567,14 @@ 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-e1836a56-9046-4368-9940-75bfa9549184 +Openstack-Request-Id: req-df0ed890-4b32-4e58-8773-1d0b763b0487 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-e1836a56-9046-4368-9940-75bfa9549184 +Openstack-Request-Id: req-df0ed890-4b32-4e58-8773-1d0b763b0487 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27212,14 +23583,14 @@ 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-3511e29f-1dd2-4350-b9b5-ca1d42bc52b5 +Openstack-Request-Id: req-594a62ab-b780-4b4c-b482-be526d93fa52 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-3511e29f-1dd2-4350-b9b5-ca1d42bc52b5 +Openstack-Request-Id: req-594a62ab-b780-4b4c-b482-be526d93fa52 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27228,1474 +23599,1376 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c28fe4b4-c130-42bd-ad1f-91bd3a925ee3 +Openstack-Request-Id: req-f113120e-8241-463d-9232-ec7a2a12067e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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_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.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 -GOT:Response: 404 Not Found +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.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.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.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.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.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.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.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.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.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.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.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_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.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_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.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.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.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.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_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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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_with_agent_version +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_with_agent_version ... 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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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 +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-9e1065b0-2be6-45c0-a3af-f2fac726a723 +Openstack-Request-Id: req-1273118a-4bf6-4f63-8578-1064312b0036 X-Openstack-Ironic-Api-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: 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-2922b9e0-4aab-4186-a5a5-396435ffcf6e +Openstack-Request-Id: req-1273118a-4bf6-4f63-8578-1064312b0036 X-Openstack-Ironic-Api-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"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'}}] +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-e389ecc9-4ecd-4cfa-86a7-5af6072f1660 +Openstack-Request-Id: req-beb0af8e-6af4-44f8-8ed7-45d7778040ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b9c58386-6e9e-433f-afb7-40f1fed487f9 +Openstack-Request-Id: req-beb0af8e-6af4-44f8-8ed7-45d7778040ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 {} +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"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'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-cbd8ccc4-adbe-47ad-aa47-ef7b2c0408c2 +Openstack-Request-Id: req-a2a80c39-0446-4e05-9a29-edd22b76dc77 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 {} -GOT:Response: 403 Forbidden +{"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-2f88c3d2-d14b-45e3-bf01-8b82fff2932f +Openstack-Request-Id: req-a2a80c39-0446-4e05-9a29-edd22b76dc77 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 {} +{"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'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a1ca7a9a-b25c-4efd-b620-62e608e420b6 +Openstack-Request-Id: req-2e572042-d97e-4507-8a32-58370c3edda6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: 403 Forbidden +{"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-901742cc-07d7-4f73-9af7-6d558156b7b2 +Openstack-Request-Id: req-2e572042-d97e-4507-8a32-58370c3edda6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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'} -GOT:Response: 403 Forbidden +{"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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +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-75e3d72b-930b-4504-be26-22ff8db1884c +Openstack-Request-Id: req-63426fbe-0d56-4981-9e45-c09f9d371f37 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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'} -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-ed1a9632-0a19-473e-8f8c-58636b869c34 +Openstack-Request-Id: req-63426fbe-0d56-4981-9e45-c09f9d371f37 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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'} +{"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 +DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ac4cae02-c1c9-42ce-bc52-8d1914357afe -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-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-f702f819-5206-49c1-8e2b-85c74f9b0c9c -X-Openstack-Ironic-Api-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: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-9e2c04c9-f768-41ad-ba07-4fe64b63fee5 +Openstack-Request-Id: req-be3905d7-1f76-4e36-81f9-e5daecec9864 X-Openstack-Ironic-Api-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: 404 Not Found +{"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-7bcff5c3-9a70-4166-97ff-43af8a035cd4 +Openstack-Request-Id: req-be3905d7-1f76-4e36-81f9-e5daecec9864 X-Openstack-Ironic-Api-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: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-1b16e2b7-899c-42d6-82fb-a77cd5288158 +Openstack-Request-Id: req-b574bc49-d0ae-400f-ba35-f06be650666e X-Openstack-Ironic-Api-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'}}] -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.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs ... 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_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.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.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.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.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.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.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.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate ... 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.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.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.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.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.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.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.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_bios -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_bios ... 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.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.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.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.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.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.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.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.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local ... 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.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.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.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_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.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.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.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.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 -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.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.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value -ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value ... 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.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.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.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.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.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.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.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.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 -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-dd604ac7-2565-437f-8c27-e40171026dd9 +Openstack-Request-Id: req-b574bc49-d0ae-400f-ba35-f06be650666e 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-06T10:57:14.227300+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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-dd604ac7-2565-437f-8c27-e40171026dd9 +Openstack-Request-Id: req-757999fa-514d-47a1-b883-7911ddea42fc 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-06T10:57:14.227300+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 +{"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-52229040-67b3-477c-9ed9-702b403cad42 +Openstack-Request-Id: req-757999fa-514d-47a1-b883-7911ddea42fc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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\": \"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.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.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.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.drac.test_job.DracJobTestCase.test_list_unfinished_jobs +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs ... 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/28be0acd-8886-49b1-af81-0c6126da1b3a/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/d0d7d7fb-da45-476d-84e5-fa081e42b6c6/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-07T17:33:30.314425+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-07T17:33:30.314425+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/a6b4eec9-f9a4-4382-b9ed-17243ffc193d/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/e624d546-a610-463c-8c9d-bf417b9e02b2/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.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.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.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.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.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.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.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_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_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.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.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.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.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.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 +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:30.629033+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-07T17:33:30.629033+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-07T17:33:30.783268+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.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.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_cleaning.DoNodeCleanTestCase.test__do_node_clean_maintenance +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_maintenance ... 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 +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_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.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.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.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.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.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.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.api.controllers.v1.test_node.TestListNodes.test_one +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one ... 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.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.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.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.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.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_without_version +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_without_version ... 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.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.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.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.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 ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-52229040-67b3-477c-9ed9-702b403cad42 +Openstack-Request-Id: req-0d42d43f-0d34-4dc9-8d44-0015dd497a9b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 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 Content-Type: application/json -Openstack-Request-Id: req-9c66d417-946e-47a4-8798-4d329f6e7f69 +Openstack-Request-Id: req-7ee8b643-7a52-4848-ae80-ee882df7f919 X-Openstack-Ironic-Api-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-9c66d417-946e-47a4-8798-4d329f6e7f69 +Openstack-Request-Id: req-7ee8b643-7a52-4848-ae80-ee882df7f919 X-Openstack-Ironic-Api-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\": \"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-1f772f6f-2d29-4442-a054-a0e0cb78a536 +Openstack-Request-Id: req-f47cc3fd-fd99-4dc8-a433-f86b6f901dad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:node:vif:attach\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1f772f6f-2d29-4442-a054-a0e0cb78a536 +Openstack-Request-Id: req-f47cc3fd-fd99-4dc8-a433-f86b6f901dad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: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-99716779-26b2-449f-9887-4ca3aef6605d +Openstack-Request-Id: req-fd48f223-3f56-43e3-b3ec-76a2a23cc0f3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-99716779-26b2-449f-9887-4ca3aef6605d +Openstack-Request-Id: req-fd48f223-3f56-43e3-b3ec-76a2a23cc0f3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 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-b874660f-d8cd-40ea-a1df-2aa1d5afbdc0 +Openstack-Request-Id: req-d64930b0-2cea-4cfe-bb51-e4049c60840d X-Openstack-Ironic-Api-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-b874660f-d8cd-40ea-a1df-2aa1d5afbdc0 +Openstack-Request-Id: req-d64930b0-2cea-4cfe-bb51-e4049c60840d X-Openstack-Ironic-Api-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\": \"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-70af11bd-0eb3-47a7-a8fb-12c59b1116b3 +Openstack-Request-Id: req-04d44cb2-0690-4581-b418-1a60382eb80f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:detach\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-70af11bd-0eb3-47a7-a8fb-12c59b1116b3 +Openstack-Request-Id: req-04d44cb2-0690-4581-b418-1a60382eb80f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 -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.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.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 -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-5ab5f122-46f6-4070-940e-301ebc98242c -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 \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'bios'} -GOT:Response: 404 Not Found +{"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-6d30a4c0-dccd-42d4-a7e0-ae15aecde674 -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': 'bios'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-8b0d1625-c4af-4a92-9b98-fb02d661d8ac +Openstack-Request-Id: req-5ed4e9a0-6784-468e-9792-83c685626015 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'} -GOT:Response: 400 Bad Request +X-Openstack-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-e1ab02a8-2744-4561-bb11-c85a7600d45c +Openstack-Request-Id: req-5ed4e9a0-6784-468e-9792-83c685626015 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'} +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-dc751aba-ec81-4ad1-9a22-5d04e28f73be -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-4ef0dc58-f7f4-4553-9c74-89b0404347cf -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-6347e35c-b764-43f1-a39e-7998dda1ba29 -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 -Openstack-Request-Id: req-2646df00-14e0-4ac8-82ec-29e0d7f519f1 +Openstack-Request-Id: req-97647e74-1c0f-4fec-8f15-3486f1fd32ea 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-8376bff3-fea5-4b3f-88c6-8b1476e77376 -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.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-b56e6507-a7d3-499e-838a-bfc3e160a8f3 +Openstack-Request-Id: req-97647e74-1c0f-4fec-8f15-3486f1fd32ea 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.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 {} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-262c293d-7090-49bf-902e-d0d980e5af25 -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-efbb6c66-e31c-4011-a20a-ca08fcb5e69f +Openstack-Request-Id: req-d1c796c5-300a-4fb9-a805-21986725bd8b 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 {} +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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.DoNodeTakeOverTestCase.test__do_takeover +ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover ... 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.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.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.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_node.TestListNodes.test_portgroups_subresource_link +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link ... 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.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.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.DoNodeRescueTestCase.test__do_node_unrescue_other_error +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_other_error ... 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.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.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.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.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.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.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_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.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.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.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.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue ... 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.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.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.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.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.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.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.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.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_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration ... 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.DoNodeCleanTestCase.test_continue_node_clean_locked +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_locked ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:30.783268+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': '0f85e374-75b6-419e-98e6-ee3126a5ce03', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/0f85e374-75b6-419e-98e6-ee3126a5ce03', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0f85e374-75b6-419e-98e6-ee3126a5ce03', 'rel': 'bookmark'}]}, {'uuid': '96486ab7-6abe-4d00-bf67-a2a34dfc1ba7', 'address': '52:54:00:cf:2d:31', 'name': 'pg-1', 'links': [{'href': 'http://localhost/v1/portgroups/96486ab7-6abe-4d00-bf67-a2a34dfc1ba7', 'rel': 'self'}, {'href': 'http://localhost/portgroups/96486ab7-6abe-4d00-bf67-a2a34dfc1ba7', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups?limit=1 {} +GOT:{'portgroups': [{'uuid': '0f85e374-75b6-419e-98e6-ee3126a5ce03', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/0f85e374-75b6-419e-98e6-ee3126a5ce03', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0f85e374-75b6-419e-98e6-ee3126a5ce03', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=1&marker=0f85e374-75b6-419e-98e6-ee3126a5ce03'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T17:33:31.218961+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': '2025-02-07T17:33:31.357441+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 -Openstack-Request-Id: req-5011d0a2-cf03-4b6a-9dce-a64cf2645460 -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 {} -GOT:Response: 400 Bad Request +{"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.TestListNodes.test_ports_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource ... 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.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_invalid_state +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_invalid_state ... ok +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-70f9ba39-a41e-4ab7-8de6-3f76248b8b73 -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-1f90eb81-2326-4842-9cbe-8c727a12631e +Openstack-Request-Id: req-f113120e-8241-463d-9232-ec7a2a12067e 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.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 +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8925a23f-d183-4bd5-b0e9-92fe0c2139fe +Openstack-Request-Id: req-3e45d9f2-2e04-42c8-8dda-e7eec9fc8014 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 +{"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-ab78999c-3cbf-4af2-a7a2-127575a117f3 +Openstack-Request-Id: req-3e45d9f2-2e04-42c8-8dda-e7eec9fc8014 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'} -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.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.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.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.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.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.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.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.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue ... 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_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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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_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.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.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.irmc.test_management.IRMCManagementTestCase.test_validate -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate ... 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_185_volume_targets_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_185_volume_targets_get_member ... 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.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.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_management.IRMCManagementTestCase.test_validate_fail -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_fail ... 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.objects.test_node.TestConvertToVersion.test_bios_supported_set -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set ... 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.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.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.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.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.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_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.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.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.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.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.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_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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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_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.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_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.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.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.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.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 +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 Content-Type: application/json -Openstack-Request-Id: req-10bcb0f2-9363-4730-8abe-4c9b5677aedb +Openstack-Request-Id: req-91162966-0fa9-4212-8dbf-cf205ee99097 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-10bcb0f2-9363-4730-8abe-4c9b5677aedb +Openstack-Request-Id: req-91162966-0fa9-4212-8dbf-cf205ee99097 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: 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-82323145-172c-40d3-99b0-26557d4e3390 +Openstack-Request-Id: req-0a2b166b-d01f-45cd-bf24-7bda3b624416 X-Openstack-Ironic-Api-Maximum-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-82323145-172c-40d3-99b0-26557d4e3390 +Openstack-Request-Id: req-0a2b166b-d01f-45cd-bf24-7bda3b624416 X-Openstack-Ironic-Api-Maximum-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 {} +{"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-ca2726db-a1c7-4fcc-8479-011e0dc00080 +Openstack-Request-Id: req-e0bcbc17-fc96-4bdf-ac48-3e08f02b6312 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-ca2726db-a1c7-4fcc-8479-011e0dc00080 +Openstack-Request-Id: req-e0bcbc17-fc96-4bdf-ac48-3e08f02b6312 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 +{"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-6f552096-f22d-427d-ad0c-df2d616696f6 +Openstack-Request-Id: req-a372e980-6475-4878-bdfb-2843993987ff 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-06T10:57:15.306206+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}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-6f552096-f22d-427d-ad0c-df2d616696f6 +Openstack-Request-Id: req-a372e980-6475-4878-bdfb-2843993987ff 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-06T10:57:15.306206+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 +{"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: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-54cfe631-fb1a-448a-b0da-c06017a9eab0 +Openstack-Request-Id: req-eecec3e4-4ebd-42b4-9984-c58ebdcfbdcd X-Openstack-Ironic-Api-Maximum-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-54cfe631-fb1a-448a-b0da-c06017a9eab0 +Openstack-Request-Id: req-eecec3e4-4ebd-42b4-9984-c58ebdcfbdcd X-Openstack-Ironic-Api-Maximum-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 +{"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: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2d974951-8fc0-45a2-b47b-13ef9c6097e5 +Openstack-Request-Id: req-903cd5f7-2226-43e1-8cae-e2315425e808 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-06T10:57:15.479708+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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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 +{"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-c28fe4b4-c130-42bd-ad1f-91bd3a925ee3 +Openstack-Request-Id: req-903cd5f7-2226-43e1-8cae-e2315425e808 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 -GOT:Response: 403 Forbidden +{"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-3f39a8e5-a0a3-4446-9719-8dfe05301442 +Openstack-Request-Id: req-ba6a1111-a67e-4cf5-a69a-f394bde585f1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-3f39a8e5-a0a3-4446-9719-8dfe05301442 +Openstack-Request-Id: req-ba6a1111-a67e-4cf5-a69a-f394bde585f1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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-50e9303f-60fc-4102-a4a2-9b2309eb9529 +Openstack-Request-Id: req-d9e14cfa-e205-4578-bffe-ce9042afb444 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}"} +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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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_092_nodes_traits_delete_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_092_nodes_traits_delete_reader ... 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.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.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.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.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.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.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.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.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.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.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_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.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.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_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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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_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_cleaning.DoNodeCleanTestCase.test_continue_node_clean +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean ... 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.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.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire ... 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.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.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 +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-50e9303f-60fc-4102-a4a2-9b2309eb9529 +Openstack-Request-Id: req-581122eb-76d5-4d0d-a37c-f7d97c863e1c 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\": \"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-581122eb-76d5-4d0d-a37c-f7d97c863e1c +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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 +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7193e503-0e28-46ec-8fb8-e083e63583ff +Openstack-Request-Id: req-1d51032e-31d7-4e9c-962e-2cacfa3710e1 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:delete:self_owned_node\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7193e503-0e28-46ec-8fb8-e083e63583ff +Openstack-Request-Id: req-1d51032e-31d7-4e9c-962e-2cacfa3710e1 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\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9561d6a5-a2d2-4623-938f-1d385def2136 +Openstack-Request-Id: req-9a9e300e-cbc0-40a0-91a4-179e6ca02c67 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\": \"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-9561d6a5-a2d2-4623-938f-1d385def2136 +Openstack-Request-Id: req-9a9e300e-cbc0-40a0-91a4-179e6ca02c67 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\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/validate +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/validate {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-23d0d633-b8ee-4e1b-82c0-abe44200f72b +Openstack-Request-Id: req-23751146-3eef-4584-9a3a-c77d08373683 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-23d0d633-b8ee-4e1b-82c0-abe44200f72b +Openstack-Request-Id: req-23751146-3eef-4584-9a3a-c77d08373683 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/validate +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/validate {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-60b6cbb8-5049-4243-b8da-b164df85c269 +Openstack-Request-Id: req-e3d90052-2f67-4fc5-8270-8dd806bc1189 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-60b6cbb8-5049-4243-b8da-b164df85c269 +Openstack-Request-Id: req-e3d90052-2f67-4fc5-8270-8dd806bc1189 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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: 403 Forbidden +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/validate +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/validate {} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-8574eae7-d2a6-479e-a4d4-25ea1fc714af +Openstack-Request-Id: req-899b4f3e-1b91-416e-b8ef-cbdada2a69a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-8574eae7-d2a6-479e-a4d4-25ea1fc714af +Openstack-Request-Id: req-899b4f3e-1b91-416e-b8ef-cbdada2a69a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/validate +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/validate {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-e7333be8-3c7f-470e-920b-ba2561ce2235 +Openstack-Request-Id: req-1f3484f8-8c27-4a7c-86d9-f8dbdf593413 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-e7333be8-3c7f-470e-920b-ba2561ce2235 +Openstack-Request-Id: req-1f3484f8-8c27-4a7c-86d9-f8dbdf593413 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/validate +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/validate {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-44135d79-aa43-449a-b80d-9a1b5cbf4d2d +Openstack-Request-Id: req-d6060cb0-fe5d-42f7-b1db-eceb7e30f416 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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_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_189_volume_targets_post_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_189_volume_targets_post_observer ... 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.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.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.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.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.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.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.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.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.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_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.objects.test_node.TestConvertToVersion.test_description_supported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_missing ... 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.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_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.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_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.objects.test_node.TestConvertToVersion.test_description_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_missing ... 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.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.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.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.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.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.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.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.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.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.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.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.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia ... 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.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.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.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.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.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.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_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.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.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_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.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 -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-08ad58df-1869-4d32-8de4-5194dda1e1e0 -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 +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-0dca3976-c58e-4224-a583-983a2c776d21 -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-1ccd0c29-6742-42ae-9198-0ed1241c97e7 -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'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-a9afb85e-a2fb-4352-84e3-96b22384ef50 +Openstack-Request-Id: req-d6060cb0-fe5d-42f7-b1db-eceb7e30f416 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 +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/validate +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/validate {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-28b4bd5d-ca85-4dc7-a230-e93dba48a873 +Openstack-Request-Id: req-ffd41172-c12d-4ca2-82b4-d3aef68ef892 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.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"} +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.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.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.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.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_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.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.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.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node ... 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.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.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_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.ManagerSyncPowerStatesTestCase.test_single_node_adopt_failed +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node_adopt_failed ... 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.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.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.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_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.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.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_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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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_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 +GOT:{'ports': [{'uuid': 'b8273c7a-4a03-4bbc-8540-0108a2103f70', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/b8273c7a-4a03-4bbc-8540-0108a2103f70', 'rel': 'self'}, {'href': 'http://localhost/ports/b8273c7a-4a03-4bbc-8540-0108a2103f70', 'rel': 'bookmark'}]}, {'uuid': '3789c41d-6837-4949-ae1f-98a46121f851', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/3789c41d-6837-4949-ae1f-98a46121f851', 'rel': 'self'}, {'href': 'http://localhost/ports/3789c41d-6837-4949-ae1f-98a46121f851', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports?limit=1 {} +GOT:{'ports': [{'uuid': 'b8273c7a-4a03-4bbc-8540-0108a2103f70', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/b8273c7a-4a03-4bbc-8540-0108a2103f70', 'rel': 'self'}, {'href': 'http://localhost/ports/b8273c7a-4a03-4bbc-8540-0108a2103f70', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=b8273c7a-4a03-4bbc-8540-0108a2103f70'} +GET: /v1/nodes/123 123/ports {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-689cdf0f-8a84-47cd-96c9-e20c2da0ef4c -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 \\\"clean wait\\\".\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'not-supported'} -GOT:Response: 400 Bad Request +{"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-07T17:33:31.746491+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-ff01fe60-c94f-4123-8334-21d51b95834d +Openstack-Request-Id: req-68db4f08-5191-4de1-97c7-1ea9f2442350 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 \\\"not-supported\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"None\\\".\", \"debuginfo\": null}"} -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-fddff935-7730-4449-90a2-6e9f148589b7 -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/power {'target': 'power on'} +{"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-ce9495b3-b4a8-4e87-b52f-07a0620bebff -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/power {'target': 'power on', 'timeout': 0} -GOT:Response: 400 Bad Request +{"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-aed76895-80ae-4cad-8d46-abf5f62cda30 +Openstack-Request-Id: req-d1ebf17c-f28c-4b04-940f-c81d5357e098 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\": \"timeout has to be positive integer\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 0} +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': '28766224-50a3-4a45-9ef8-a9e7cede1069', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/28766224-50a3-4a45-9ef8-a9e7cede1069', 'rel': 'self'}, {'href': 'http://localhost/nodes/28766224-50a3-4a45-9ef8-a9e7cede1069', 'rel': 'bookmark'}]}, {'uuid': '37855ba3-c7f2-430b-be60-dfd83b28f62e', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/37855ba3-c7f2-430b-be60-dfd83b28f62e', 'rel': 'self'}, {'href': 'http://localhost/nodes/37855ba3-c7f2-430b-be60-dfd83b28f62e', 'rel': 'bookmark'}]}, {'uuid': '4c8ce928-ac65-4be0-8fa9-d323670d4a72', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/4c8ce928-ac65-4be0-8fa9-d323670d4a72', 'rel': 'self'}, {'href': 'http://localhost/nodes/4c8ce928-ac65-4be0-8fa9-d323670d4a72', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?sort_key=resource_class {} +GOT:{'nodes': [{'uuid': 'ee59d2d3-8507-498c-89a6-c9047b2001a2', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/ee59d2d3-8507-498c-89a6-c9047b2001a2', 'rel': 'self'}, {'href': 'http://localhost/nodes/ee59d2d3-8507-498c-89a6-c9047b2001a2', 'rel': 'bookmark'}]}, {'uuid': '5e5ac93f-af02-4b00-b7af-24b5e8f5dd95', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/5e5ac93f-af02-4b00-b7af-24b5e8f5dd95', 'rel': 'self'}, {'href': 'http://localhost/nodes/5e5ac93f-af02-4b00-b7af-24b5e8f5dd95', 'rel': 'bookmark'}]}, {'uuid': 'cc2a205b-0f93-43c7-b7a1-3daca097ed83', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/cc2a205b-0f93-43c7-b7a1-3daca097ed83', 'rel': 'self'}, {'href': 'http://localhost/nodes/cc2a205b-0f93-43c7-b7a1-3daca097ed83', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-16318812-eeca-4973-8140-1b374b6721d7 +Openstack-Request-Id: req-1b9cf3d2-fbe2-4528-a31d-7c954e9a0705 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\": \"timeout has to be positive integer\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 0} +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 Content-Type: application/json -Openstack-Request-Id: req-e493985e-80e1-4e7a-947e-b8d4ff3c9db0 -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}"} -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-965b844b-1b9e-44e0-8e4f-3f0d0bc5b708 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.26 - -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-feecf35a-ac75-4740-804a-b91ba74b1c89 -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/power {'target': 'power on'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-237152e4-c6b9-4135-a614-fa1bf4060520 +Openstack-Request-Id: req-5055877f-931f-41ca-87e1-f080a749a750 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.27 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 2} -GOT:Response: 406 Not Acceptable +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 Content-Type: application/json -Openstack-Request-Id: req-1a418e9e-8d9b-425e-90d6-8bfb372e6011 +Openstack-Request-Id: req-5ca80f53-62b1-4ccd-92fe-0d2233e3de8a 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': 'power on', 'timeout': 2} -GOT:Response: 406 Not Acceptable +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 {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-73b5167a-a33f-4255-a06a-a166450f31fc -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}"} -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-0b9e89cd-9613-4d46-afe1-95d560ff6e88 +Openstack-Request-Id: req-549dce92-60ef-46bc-b229-153cead2cd5e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.27 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 0} -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.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.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__has_vmedia_device -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device ... 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_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.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.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.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.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.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.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.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.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.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.db.test_deploy_templates.DbDeployTemplateTestCase.test_create -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create ... 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.objects.test_node.TestConvertToVersion.test_lessee_supported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_missing ... 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.objects.test_node.TestConvertToVersion.test_lessee_supported_set -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_set ... 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.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.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_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.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.objects.test_node.TestConvertToVersion.test_lessee_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_missing ... 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.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.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.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.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 -GOT:Response: 404 Not Found +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 {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-0e876b5b-e058-4971-8b8e-c49aeb756f98 +Openstack-Request-Id: req-3df163f6-7d1c-4412-874d-db8841e6e31d X-Openstack-Ironic-Api-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: 404 Not Found +{"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.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.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.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.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.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_manager.DoNodeRescueTestCase.test_provision_rescue_abort +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort ... 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.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.DoNodeCleanTestCase.test_do_node_clean_maintenance +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_maintenance ... 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.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config ... ok +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d0e7cb27-3c38-4f38-9cee-9ccb1e9421e7 +Openstack-Request-Id: req-d1c796c5-300a-4fb9-a805-21986725bd8b X-Openstack-Ironic-Api-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\": \"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-20a6bc99-e09b-45b7-8455-e06b83b5a9aa +Openstack-Request-Id: req-25745be9-c300-414c-bced-b544e9d7644c X-Openstack-Ironic-Api-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 +{"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-c50a59bc-e86d-4157-ae75-e032f0fcf4f2 +Openstack-Request-Id: req-25745be9-c300-414c-bced-b544e9d7644c X-Openstack-Ironic-Api-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 +{"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 Content-Type: application/json -Openstack-Request-Id: req-c5134d0b-8147-431a-84d7-ef1cb5eae4c0 +Openstack-Request-Id: req-04833d8c-b889-4109-81ce-0cf78e9ad111 X-Openstack-Ironic-Api-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\": \"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-6a9cd3f2-a79f-4b2e-a1c9-94370940ef66 +Openstack-Request-Id: req-04833d8c-b889-4109-81ce-0cf78e9ad111 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-d0c6c86f-7956-4b2e-b638-4dd4f555853e +Openstack-Request-Id: req-da0fff34-7291-496c-b0c0-d0cdd67f5f2a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-70e6ec0d-3863-43d1-a293-6bec16205aaa +Openstack-Request-Id: req-da0fff34-7291-496c-b0c0-d0cdd67f5f2a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-da981fe3-232e-42bf-806e-40ec1e35f19e +Location: http://localhost/v1/portgroups/b3e0359f-408b-4f20-b499-38df9cc043f5 +Openstack-Request-Id: req-13b14bbc-3bd3-452a-96de-55064b25d0dc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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": "b3e0359f-408b-4f20-b499-38df9cc043f5", "created_at": "2025-02-07T17:33:32.093468+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/b3e0359f-408b-4f20-b499-38df9cc043f5", "rel": "self"}, {"href": "http://localhost/portgroups/b3e0359f-408b-4f20-b499-38df9cc043f5", "rel": "bookmark"}], "node_uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "ports": [{"href": "http://localhost/v1/portgroups/b3e0359f-408b-4f20-b499-38df9cc043f5/ports", "rel": "self"}, {"href": "http://localhost/portgroups/b3e0359f-408b-4f20-b499-38df9cc043f5/ports", "rel": "bookmark"}]} +ACL Test GOT Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-fe3e27e8-1503-497d-a217-3246dc69cf4a +Location: http://localhost/v1/portgroups/b3e0359f-408b-4f20-b499-38df9cc043f5 +Openstack-Request-Id: req-13b14bbc-3bd3-452a-96de-55064b25d0dc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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'} +{"uuid": "b3e0359f-408b-4f20-b499-38df9cc043f5", "created_at": "2025-02-07T17:33:32.093468+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/b3e0359f-408b-4f20-b499-38df9cc043f5", "rel": "self"}, {"href": "http://localhost/portgroups/b3e0359f-408b-4f20-b499-38df9cc043f5", "rel": "bookmark"}], "node_uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "ports": [{"href": "http://localhost/v1/portgroups/b3e0359f-408b-4f20-b499-38df9cc043f5/ports", "rel": "self"}, {"href": "http://localhost/portgroups/b3e0359f-408b-4f20-b499-38df9cc043f5/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-3230dd2e-636f-4338-a0fe-89a53ab7ef3f +Openstack-Request-Id: req-786d7f09-d946-47c4-905b-98b978e7223a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-31bf820c-ac57-43ca-ae1f-de5eb4044de9 +Openstack-Request-Id: req-786d7f09-d946-47c4-905b-98b978e7223a X-Openstack-Ironic-Api-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\": \"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-daa460d7-e6af-42a7-8523-8d1b1b86cb34 +Openstack-Request-Id: req-d0ef3470-3fcb-4ca4-b02b-372b9d5c00f8 X-Openstack-Ironic-Api-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\": \"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-8b1886b2-5ade-4a29-b46c-32132f7f8c8f +Openstack-Request-Id: req-d0ef3470-3fcb-4ca4-b02b-372b9d5c00f8 X-Openstack-Ironic-Api-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.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.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.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.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.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.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.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.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.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 -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.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.db.test_deploy_templates.DbDeployTemplateTestCase.test_destroy -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_destroy ... 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_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.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.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.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.objects.test_node.TestConvertToVersion.test_owner_supported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_missing ... 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.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.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.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.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_node.TestConvertToVersion.test_owner_supported_set -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_set ... 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.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.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.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.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.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.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.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 +{"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.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.conductor.test_manager.NmiTestCase.test_inject_nmi +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi ... 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.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.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.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.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.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.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_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.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.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.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.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.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_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.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.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.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach ... 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.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.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.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.NmiTestCase.test_inject_nmi_node_locked +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_node_locked ... 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.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.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.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.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.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_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.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.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.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.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.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_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.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.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.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.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.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.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.objects.test_node.TestConvertToVersion.test_protected_supported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_missing ... 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.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.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.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.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.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.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.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.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.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.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_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_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_next_clean_step_manual_all +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all ... 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.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.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.test_agent.TestAgentMethods.test_check_image_size +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size ... 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.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.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_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_manager.DoNodeCleanTestCase.test_do_node_clean_power_validate_fail +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_power_validate_fail ... ok ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-44135d79-aa43-449a-b80d-9a1b5cbf4d2d +Openstack-Request-Id: req-d9e14cfa-e205-4578-bffe-ce9042afb444 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28704,14 +24977,14 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-0f326baa-f13a-407e-a861-893c293f8dec +Openstack-Request-Id: req-c3cb9db2-87c2-4280-a1f4-857473aa02c2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-0f326baa-f13a-407e-a861-893c293f8dec +Openstack-Request-Id: req-c3cb9db2-87c2-4280-a1f4-857473aa02c2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28720,14 +24993,14 @@ 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-35cfb2ee-c840-46fb-8999-2908933f84c3 +Openstack-Request-Id: req-b3fa2920-fb53-4069-91fc-b3e206beeee9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-35cfb2ee-c840-46fb-8999-2908933f84c3 +Openstack-Request-Id: req-b3fa2920-fb53-4069-91fc-b3e206beeee9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28736,14 +25009,14 @@ 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-27aca007-8e32-41bc-8600-e1971aab78ad +Openstack-Request-Id: req-d8bbd05e-791b-4405-867d-2460428727d0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-27aca007-8e32-41bc-8600-e1971aab78ad +Openstack-Request-Id: req-d8bbd05e-791b-4405-867d-2460428727d0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28752,14 +25025,14 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-e00fe99b-2608-4795-947f-ba3e2176a3b8 +Openstack-Request-Id: req-c6b617ba-b0a1-4725-9798-d85233c6b0b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-e00fe99b-2608-4795-947f-ba3e2176a3b8 +Openstack-Request-Id: req-c6b617ba-b0a1-4725-9798-d85233c6b0b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28768,14 +25041,14 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-5b6d3c3c-26b8-4346-b2ba-88cc970591cd +Openstack-Request-Id: req-83fbca20-f724-4338-b966-48c559432ddb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-5b6d3c3c-26b8-4346-b2ba-88cc970591cd +Openstack-Request-Id: req-83fbca20-f724-4338-b966-48c559432ddb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28784,14 +25057,14 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-9826ba22-c7b4-4bdd-9048-4fcf490b4c87 +Openstack-Request-Id: req-55ae7163-0819-499f-bcd2-ab1e76aed123 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-9826ba22-c7b4-4bdd-9048-4fcf490b4c87 +Openstack-Request-Id: req-55ae7163-0819-499f-bcd2-ab1e76aed123 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28800,14 +25073,14 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7360fa0f-04a3-4d5b-b9f3-3b63f6833e15 +Openstack-Request-Id: req-51e5255e-2be9-434a-adad-9373ea62faa3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-7360fa0f-04a3-4d5b-b9f3-3b63f6833e15 +Openstack-Request-Id: req-51e5255e-2be9-434a-adad-9373ea62faa3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28816,681 +25089,599 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b3a0807e-6ffd-4509-a4ba-7215cf5d1fbe +Openstack-Request-Id: req-45f8ea9d-1640-4618-b2a9-72a9fdde13a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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.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.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.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.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.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.objects.test_node.TestConvertToVersion.test_protected_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_missing ... 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.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.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.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_name -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_name ... 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.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.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.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_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.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_remove -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_remove ... ok -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-2d974951-8fc0-45a2-b47b-13ef9c6097e5 -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-06T10:57:15.479708+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 {} +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.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.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.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.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.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.conductor.test_manager.SensorsTestCase.test___send_sensor_data +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data ... 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.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.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.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.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.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.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.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.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.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.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_manual_first_step_async +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async ... 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.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.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_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes +ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes ... 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.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.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.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_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-983807da-bbf2-44f3-91a5-84aa991659c0 +Openstack-Request-Id: req-83d5b1ab-450f-4f0b-9df5-7650e31ebe1f 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", "created_at": "2025-02-07T17:33:32.552012+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-983807da-bbf2-44f3-91a5-84aa991659c0 +Openstack-Request-Id: req-83d5b1ab-450f-4f0b-9df5-7650e31ebe1f 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: 404 Not Found +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:32.552012+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-0822aa91-377d-4b2e-80c7-0457062f25ff +Openstack-Request-Id: req-2645e4d7-7c46-4724-92af-e1a5b4c1d509 X-Openstack-Ironic-Api-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 +{"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-0822aa91-377d-4b2e-80c7-0457062f25ff +Openstack-Request-Id: req-2645e4d7-7c46-4724-92af-e1a5b4c1d509 X-Openstack-Ironic-Api-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\": \"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-0637d461-d3bd-4449-9283-9b17d6d5c332 +Openstack-Request-Id: req-a78c8af7-50a8-456e-93ae-3af26329b979 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", "created_at": "2025-02-07T17:33:32.846584+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-0637d461-d3bd-4449-9283-9b17d6d5c332 +Openstack-Request-Id: req-a78c8af7-50a8-456e-93ae-3af26329b979 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 {} +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:32.846584+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-af3942f0-7cd1-4598-863b-70d7d66dbcb4 +Openstack-Request-Id: req-52df6475-2dcb-4fd4-b9f4-e74593434c91 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": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:32.999305+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-af3942f0-7cd1-4598-863b-70d7d66dbcb4 +Openstack-Request-Id: req-52df6475-2dcb-4fd4-b9f4-e74593434c91 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 {} +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:32.999305+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-788f3b74-22c1-41d5-8da6-976d063f5d7e -X-Openstack-Ironic-Api-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-788f3b74-22c1-41d5-8da6-976d063f5d7e +Openstack-Request-Id: req-197c3fa2-5625-415d-b999-18e58d9534ba X-Openstack-Ironic-Api-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-575702cc-d71e-4de2-a7d2-bd8aee9a8e77 -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-575702cc-d71e-4de2-a7d2-bd8aee9a8e77 -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 -Content-Type: application/json -Openstack-Request-Id: req-ce4d08a5-c07a-4301-800c-36dd66e0291d -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 +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.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.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.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.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_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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources ... 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.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.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.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.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.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.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout ... 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_agent.TestAgentMethods.test_validate_http_provisioning_http_image +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_http_image ... ok +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-ce4d08a5-c07a-4301-800c-36dd66e0291d +Openstack-Request-Id: req-7295fcb8-b4c7-4b42-bcb9-2df5fbb40959 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\": \"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-0aa217fe-8aa5-42ad-a33c-065f908abbf2 +Openstack-Request-Id: req-4c48f530-259e-4a58-8b03-0fee2308c68b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-0aa217fe-8aa5-42ad-a33c-065f908abbf2 +Openstack-Request-Id: req-815044ee-7925-4ce3-be01-24e1eee330b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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.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.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.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_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.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.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.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.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.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.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.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_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.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.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.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.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.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing ... 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.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_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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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_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.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_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.objects.test_node.TestConvertToVersion.test_retired_supported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_missing ... 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_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_102_nodes_vifs_post_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_102_nodes_vifs_post_admin ... 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.test_agent_base.HeartbeatMixinTest.test_heartbeat_polling -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_polling ... 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.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.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.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.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.objects.test_node.TestConvertToVersion.test_retired_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_missing ... 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.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 +{"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-78d6b32c-5d61-4ef4-b393-98e47e461f5b +Openstack-Request-Id: req-bf8d6e13-c450-467a-9869-aefe96e066fd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.26 +X-Openstack-Ironic-Api-Version: 1.20 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 0} +GET: /v1/nodes?associated=false {} +GOT:{'nodes': [{'uuid': 'b6ef86a1-63b5-40c2-916e-c81cdb8b6e29', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/b6ef86a1-63b5-40c2-916e-c81cdb8b6e29', 'rel': 'self'}, {'href': 'http://localhost/nodes/b6ef86a1-63b5-40c2-916e-c81cdb8b6e29', 'rel': 'bookmark'}]}, {'uuid': 'c2f43ed2-17f4-4da6-8b7e-02ba32eebc63', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/c2f43ed2-17f4-4da6-8b7e-02ba32eebc63', 'rel': 'self'}, {'href': 'http://localhost/nodes/c2f43ed2-17f4-4da6-8b7e-02ba32eebc63', 'rel': 'bookmark'}]}, {'uuid': '8eb8302b-f8ae-4e77-afdb-db176ad7a217', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/8eb8302b-f8ae-4e77-afdb-db176ad7a217', 'rel': 'self'}, {'href': 'http://localhost/nodes/8eb8302b-f8ae-4e77-afdb-db176ad7a217', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?associated=FALSE {} +GOT:{'nodes': [{'uuid': 'b6ef86a1-63b5-40c2-916e-c81cdb8b6e29', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/b6ef86a1-63b5-40c2-916e-c81cdb8b6e29', 'rel': 'self'}, {'href': 'http://localhost/nodes/b6ef86a1-63b5-40c2-916e-c81cdb8b6e29', 'rel': 'bookmark'}]}, {'uuid': 'c2f43ed2-17f4-4da6-8b7e-02ba32eebc63', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/c2f43ed2-17f4-4da6-8b7e-02ba32eebc63', 'rel': 'self'}, {'href': 'http://localhost/nodes/c2f43ed2-17f4-4da6-8b7e-02ba32eebc63', 'rel': 'bookmark'}]}, {'uuid': '8eb8302b-f8ae-4e77-afdb-db176ad7a217', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/8eb8302b-f8ae-4e77-afdb-db176ad7a217', 'rel': 'self'}, {'href': 'http://localhost/nodes/8eb8302b-f8ae-4e77-afdb-db176ad7a217', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?associated=False&limit=2 {} +GOT:{'nodes': [{'uuid': '80d17f52-76b5-4b3a-a96f-ef8999c302fe', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/80d17f52-76b5-4b3a-a96f-ef8999c302fe', 'rel': 'self'}, {'href': 'http://localhost/nodes/80d17f52-76b5-4b3a-a96f-ef8999c302fe', 'rel': 'bookmark'}]}, {'uuid': '9ffc1111-08dc-4dbb-b92d-2b4c9628543c', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/9ffc1111-08dc-4dbb-b92d-2b4c9628543c', 'rel': 'self'}, {'href': 'http://localhost/nodes/9ffc1111-08dc-4dbb-b92d-2b4c9628543c', '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=9ffc1111-08dc-4dbb-b92d-2b4c9628543c'} +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-5a9c2095-9ac3-4a3e-8405-ad840763435b +Openstack-Request-Id: req-4f6c11ed-c9ce-4e55-bb4a-720fec5fe5ca 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 0} -GOT:Response: 400 Bad Request +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': '66cf407f-f461-498e-9999-93616ffb903f', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/66cf407f-f461-498e-9999-93616ffb903f', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/66cf407f-f461-498e-9999-93616ffb903f', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '990caf1b-70de-4739-bbc5-c2503d9f7bba', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/990caf1b-70de-4739-bbc5-c2503d9f7bba', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/990caf1b-70de-4739-bbc5-c2503d9f7bba', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors?limit=1 {} +GOT:{'connectors': [{'uuid': '66cf407f-f461-498e-9999-93616ffb903f', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/66cf407f-f461-498e-9999-93616ffb903f', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/66cf407f-f461-498e-9999-93616ffb903f', '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=66cf407f-f461-498e-9999-93616ffb903f'} +GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/connectors {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-75709558-0397-4108-a142-8c8728042288 +Openstack-Request-Id: req-ceed3b56-1d5e-4b28-9487-7cb8f43cd442 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}"} -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.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 Content-Type: application/json -Openstack-Request-Id: req-8f92c6ee-c683-4643-be96-f345b531ec90 -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 +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} +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.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.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.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.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.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.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_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.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.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.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 +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8b8eada8-dfd4-4b2b-bb68-176aa37f2a21 -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}"} -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-47f5e819-04ab-4422-adb4-2ac19f6c2a53 +Openstack-Request-Id: req-ffd41172-c12d-4ca2-82b4-d3aef68ef892 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.27 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 2} -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:validate\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/validate +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/validate {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-bfbab25d-070a-4927-b787-499a70a427cd +Openstack-Request-Id: req-9b6513e7-fef0-4f38-9eae-100f219de7f1 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', 'timeout': 2} -GOT:Response: 406 Not Acceptable +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-08cf8971-aeec-4abc-814f-29baf92d3732 -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}"} -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-811faa9d-8354-405b-8154-a926a54775aa +Openstack-Request-Id: req-9b6513e7-fef0-4f38-9eae-100f219de7f1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.27 - -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-9fc88dce-7f88-47ca-a349-c11ff3089593 -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/provision {'target': 'active'} -GOT:Response: 409 Conflict +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/maintenance +PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance None +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-415ce1a6-aaa9-4d0a-9890-71da933f32a5 +Openstack-Request-Id: req-4ddd5b16-67a8-498c-9e40-33cdf7b12dcc 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': 'active'} -GOT:Response: 400 Bad Request +X-Openstack-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-dfac500a-5039-4eea-9ac2-5e631c02e43c -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 \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"} -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-47ddf28a-0687-4663-b221-29535eb87eed +Openstack-Request-Id: req-4ddd5b16-67a8-498c-9e40-33cdf7b12dcc 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/provision {'target': 'active'} -GOT:Response: 404 Not Found +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/maintenance +PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance None +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f76d383b-59a1-4087-9895-8c5bbb46d9b1 +Openstack-Request-Id: req-ecc5df5d-a6e7-4754-834f-7f8acfa0f283 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/provision {'target': 'deploy'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-96ea6af4-1639-490b-bf7e-ff750db15a73 +X-Openstack-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-ecc5df5d-a6e7-4754-834f-7f8acfa0f283 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.73 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'not-supported'} -GOT:Response: 400 Bad Request +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/maintenance +PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance None +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-cf98d6d8-bb42-44dc-be6a-cc941ac56f81 +Openstack-Request-Id: req-ea63c8dc-3c6d-486c-86ee-23183981ea73 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 \\\"not-supported\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} -GOT:Response: 409 Conflict +X-Openstack-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-f0c3f350-1e16-418a-911a-c0bcb4e50d7f +Openstack-Request-Id: req-ea63c8dc-3c6d-486c-86ee-23183981ea73 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 is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} -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.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.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.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.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration -ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration ... 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.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach ... 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.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.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.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.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.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.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_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.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.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.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.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.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.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.objects.test_node.TestConvertToVersion.test_traits_supported_set -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_set ... 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.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.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.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing ... 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_bios.IRMCBIOSTestCase.test_factory_reset -ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_factory_reset ... ok -GOT:Response: 200 OK +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/maintenance +PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance None +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-869a3d8d-e81a-4a7d-a3a1-fc0c928a36ae +Openstack-Request-Id: req-2d60518f-75d3-4da4-a34b-724301f0b1f7 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\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-869a3d8d-e81a-4a7d-a3a1-fc0c928a36ae +Openstack-Request-Id: req-2d60518f-75d3-4da4-a34b-724301f0b1f7 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 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance +PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance None +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-0eef0705-522c-469d-9f8d-47e8209b1cf1 +Openstack-Request-Id: req-7a461874-2448-4143-b499-e6875d0b7304 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-0eef0705-522c-469d-9f8d-47e8209b1cf1 +Openstack-Request-Id: req-7a461874-2448-4143-b499-e6875d0b7304 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 {} +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance +PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-db052a8a-1cf9-4aac-805c-213d0aed3f02 +Openstack-Request-Id: req-652145f2-bb20-486a-8b4a-931c5acee843 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:node:set_maintenance\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-db052a8a-1cf9-4aac-805c-213d0aed3f02 +Openstack-Request-Id: req-652145f2-bb20-486a-8b4a-931c5acee843 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance +PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance None +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-72516f59-e69e-4754-be52-06465f73c88d +Openstack-Request-Id: req-18756060-2a77-4db6-87f1-c9e6b73f8b82 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\": \"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-72516f59-e69e-4754-be52-06465f73c88d +Openstack-Request-Id: req-18756060-2a77-4db6-87f1-c9e6b73f8b82 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\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} +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.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler ... 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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup ... 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.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.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.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.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 +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_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.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.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.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.test_agent_power.AgentPowerTest.test_basics +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_basics ... 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.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.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_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.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.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.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.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_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_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.controllers.v1.test_port.TestPost.test_create_port +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port ... 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.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.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.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.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift +ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift ... 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 +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 -Location: http://localhost/v1/volume/connectors/54703f32-c499-4d21-989e-d7589302a5b6 -Openstack-Request-Id: req-bd9428b1-46d3-4255-9496-58b7bed597b9 +Openstack-Request-Id: req-e26f0454-323e-4e10-a270-bf780d6fc67f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "54703f32-c499-4d21-989e-d7589302a5b6", "created_at": "2024-01-06T10:57:17.610171+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/54703f32-c499-4d21-989e-d7589302a5b6", "rel": "self"}, {"href": "http://localhost/volume/connectors/54703f32-c499-4d21-989e-d7589302a5b6", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -ACL Test GOT Response: 201 Created +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-07T17:33:33.631818+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': 'b98a8e3a-74e5-45b5-905c-f1f31ab3a795', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/b98a8e3a-74e5-45b5-905c-f1f31ab3a795', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/b98a8e3a-74e5-45b5-905c-f1f31ab3a795', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'c5a5ec6f-f0c8-470a-b899-688e59785a6f', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/c5a5ec6f-f0c8-470a-b899-688e59785a6f', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/c5a5ec6f-f0c8-470a-b899-688e59785a6f', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets?limit=1 {} +GOT:{'targets': [{'uuid': 'b98a8e3a-74e5-45b5-905c-f1f31ab3a795', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/b98a8e3a-74e5-45b5-905c-f1f31ab3a795', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/b98a8e3a-74e5-45b5-905c-f1f31ab3a795', '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=b98a8e3a-74e5-45b5-905c-f1f31ab3a795'} +GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/targets {} +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/volume/connectors/54703f32-c499-4d21-989e-d7589302a5b6 -Openstack-Request-Id: req-bd9428b1-46d3-4255-9496-58b7bed597b9 +Openstack-Request-Id: req-d61e970b-7612-4596-85b3-8b4f3eb82d03 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "54703f32-c499-4d21-989e-d7589302a5b6", "created_at": "2024-01-06T10:57:17.610171+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/54703f32-c499-4d21-989e-d7589302a5b6", "rel": "self"}, {"href": "http://localhost/volume/connectors/54703f32-c499-4d21-989e-d7589302a5b6", "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 +{"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 -Openstack-Request-Id: req-b2c15566-bdb3-4a6b-b773-cee708a7a89c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-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 +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +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-b2c15566-bdb3-4a6b-b773-cee708a7a89c +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-2ed75a09-e56e-4233-a586-446c9d4194d5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.TestNodeObject.test_as_dict_insecure -ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_insecure ... 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.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.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.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.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.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.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.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.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.irmc.test_bios.IRMCBIOSTestCase.test_validate -ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_validate ... 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.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.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 +{"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'} +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.drivers.modules.test_agent_power.AgentPowerTest.test_reboot +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot ... 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.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.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.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.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.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.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.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.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_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.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.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.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.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_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.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.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_agent_base.HeartbeatMixinTest.test_heartbeat_with_reservation -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_with_reservation ... 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_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.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.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.SensorsTestCase.test_send_sensor_task_shutdown +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_shutdown ... 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.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.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.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_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.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.conductor.test_utils.CacheVendorTestCase.test_already_present +ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_already_present ... 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.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 ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b3a0807e-6ffd-4509-a4ba-7215cf5d1fbe +Openstack-Request-Id: req-45f8ea9d-1640-4618-b2a9-72a9fdde13a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29499,14 +25690,14 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-0ab0b262-b8f3-439e-8f2e-98622a9bf0e3 +Openstack-Request-Id: req-5eca8015-9cef-41be-af05-604f76878a7d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-0ab0b262-b8f3-439e-8f2e-98622a9bf0e3 +Openstack-Request-Id: req-5eca8015-9cef-41be-af05-604f76878a7d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29515,14 +25706,14 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c6fd7bea-77e8-43aa-9157-4a5b9bd632eb +Openstack-Request-Id: req-d65033d9-e114-44d2-b81a-e936ece8c08b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-c6fd7bea-77e8-43aa-9157-4a5b9bd632eb +Openstack-Request-Id: req-d65033d9-e114-44d2-b81a-e936ece8c08b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29531,14 +25722,14 @@ 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-3bbd4f43-4e89-4ca2-851c-101cfdcc73a3 +Openstack-Request-Id: req-8ab83544-6ba1-4d41-8756-69e8fe92b17f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-3bbd4f43-4e89-4ca2-851c-101cfdcc73a3 +Openstack-Request-Id: req-8ab83544-6ba1-4d41-8756-69e8fe92b17f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29547,14 +25738,14 @@ 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-7cfec568-270b-48b4-b645-885cf083ee72 +Openstack-Request-Id: req-fe5cdbc2-2c30-4ccd-b735-48c9a3bb61a0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-7cfec568-270b-48b4-b645-885cf083ee72 +Openstack-Request-Id: req-fe5cdbc2-2c30-4ccd-b735-48c9a3bb61a0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29563,14 +25754,14 @@ 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-2071272b-b592-4542-b69a-19413c0791ad +Openstack-Request-Id: req-f9391a87-35c0-4ecc-b1cf-424a7feeeed7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-2071272b-b592-4542-b69a-19413c0791ad +Openstack-Request-Id: req-f9391a87-35c0-4ecc-b1cf-424a7feeeed7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29579,14 +25770,14 @@ 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-f040cdbe-9880-49a9-85c2-1ac4626937e7 +Openstack-Request-Id: req-65f8f9a4-0152-4632-959b-add65352f1cd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-f040cdbe-9880-49a9-85c2-1ac4626937e7 +Openstack-Request-Id: req-65f8f9a4-0152-4632-959b-add65352f1cd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29595,14 +25786,14 @@ 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-894992a3-634a-4d4a-ab97-567c0c7d1144 +Openstack-Request-Id: req-ddf66cc2-726b-4a1c-b1de-9c42cf33222f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-894992a3-634a-4d4a-ab97-567c0c7d1144 +Openstack-Request-Id: req-ddf66cc2-726b-4a1c-b1de-9c42cf33222f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29611,855 +25802,767 @@ 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-ee429d87-5030-4f93-84a7-02686d526681 +Openstack-Request-Id: req-fc897937-9243-4b00-b00f-82322f6b0156 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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.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.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.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_ramdisk -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_ramdisk ... ok -GOT:Response: 400 Bad Request +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.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.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_utils.CacheVendorTestCase.test_empty +ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_empty ... 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.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.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.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.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.conductor.test_utils.CacheVendorTestCase.test_failed +ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_failed ... 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.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.test_agent_power.AgentPowerTest.test_validate +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate ... 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.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_utils.CacheVendorTestCase.test_ok +ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_ok ... 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.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.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_validate_fails +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_fails ... 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.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.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 +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-ffc21c56-b5ef-42db-bbbe-ba04199d5f5a +Openstack-Request-Id: req-2715be7e-902b-46c3-b42d-34d4a949cf8a 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 provisioning operation can't be performed on node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 because it's in maintenance mode.\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': ' '} -GOT:Response: 400 Bad Request +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 Content-Type: application/json -Openstack-Request-Id: req-6f94916c-2605-42e1-b8e8-21af8e72fa4d -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\": \"A non-empty \\\"rescue_password\\\" is required when setting target provision state to rescue\", \"debuginfo\": null}"} -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-f58e3f76-deca-4184-b2c8-61879c4cd397 -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-4eeecbf1-5860-4864-85fe-30f7b0c750b4 -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-68060380-b925-41da-8630-13b17f3c4237 -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-442f114b-f610-4ee1-aeac-4bbba3efb743 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-440de8ca-0a78-4b00-9c90-78f47c9fbbfe 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: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:34.197953+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-07T17:33:34.197953+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 Content-Type: application/json -Openstack-Request-Id: req-9991676f-ec0d-4cde-a247-87e98d619d22 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-234c1d4d-1c7f-47e4-87d5-09c9ce642df3 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': 'rescue', 'rescue_password': 'password'} -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:34.293695+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-07T17:33:34.293695+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-7b470053-09bc-45f9-9b59-4cab62705e0d +Openstack-Request-Id: req-9c15a7d0-db8c-40e7-bc22-d72d7216de9e 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': 'rescue', 'rescue_password': 'password'} -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.80 +{"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 -Openstack-Request-Id: req-c4460ff7-c4d4-490a-9c9b-8044e1845d86 +Location: http://localhost/v1/ports/8cf820ad-ab06-4eb9-8a50-6b65d2c0b7b4 +Openstack-Request-Id: req-985f820e-edfa-40bc-b557-4eee3a680ff9 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': 'rescue', 'rescue_password': 'password'} -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "8cf820ad-ab06-4eb9-8a50-6b65d2c0b7b4", "created_at": "2025-02-07T17:33:34.481631+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/8cf820ad-ab06-4eb9-8a50-6b65d2c0b7b4", "rel": "self"}, {"href": "http://localhost/ports/8cf820ad-ab06-4eb9-8a50-6b65d2c0b7b4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} +GET: /v1/ports/8cf820ad-ab06-4eb9-8a50-6b65d2c0b7b4 {} +GOT:{'uuid': '8cf820ad-ab06-4eb9-8a50-6b65d2c0b7b4', 'created_at': '2025-02-07T17:33:34.481631+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/8cf820ad-ab06-4eb9-8a50-6b65d2c0b7b4', 'rel': 'self'}, {'href': 'http://localhost/ports/8cf820ad-ab06-4eb9-8a50-6b65d2c0b7b4', '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'} +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.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector +ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector ... 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.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_utils.CacheVendorTestCase.test_unsupported +ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_unsupported ... ok +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-509d3fee-ba3a-4895-9cd2-f82913defb54 +Openstack-Request-Id: req-197c3fa2-5625-415d-b999-18e58d9534ba 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': 'rescue'} -GOT:Response: 400 Bad Request +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 Content-Type: application/json -Openstack-Request-Id: req-1a676065-89e5-4ca9-9dae-52ad8c1e478a +Openstack-Request-Id: req-5302508f-75b3-4a29-95aa-2eace8db15b1 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\": \"A non-empty \\\"rescue_password\\\" is required when setting target provision state to rescue\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'rescue_password': 'password'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:33.324508+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-6d29dc2f-946f-44b7-a605-5f190c4df8fc -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\": \"\\\"rescue_password\\\" is only valid when setting target provision state to rescue\", \"debuginfo\": null}"} -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-5a09736c-65f9-49c8-b5bb-4ca858018542 +Openstack-Request-Id: req-5302508f-75b3-4a29-95aa-2eace8db15b1 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': 'unrescue'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-24736ebe-6247-47ab-aa84-e65da8d253a1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:33.324508+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-db4b39f5-6a8f-44e4-b211-32c34a8a914d 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': 'unrescue'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-a0ca01d0-5bed-4f0b-8615-65dff3bb2817 +X-Openstack-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-db4b39f5-6a8f-44e4-b211-32c34a8a914d 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': 'unrescue'} -GOT:Response: 409 Conflict +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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0ec83f7c-c43e-41e2-ab08-43d43b6352cb +Openstack-Request-Id: req-8cd34b60-0378-4c47-913a-8cb02e68217b 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.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.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.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_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 -GOT:Response: 404 Not Found +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-6e72fde1-d9f7-4ae3-a877-ec75eae18cc1 +Openstack-Request-Id: req-8cd34b60-0378-4c47-913a-8cb02e68217b X-Openstack-Ironic-Api-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\": \"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-ac7efc0e-2a26-4d68-8edf-e96919343ae6 +Openstack-Request-Id: req-679a3c7c-aa75-4811-936d-3743459269dc X-Openstack-Ironic-Api-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\": \"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-7bcb509a-ad0a-4d85-90c1-23b65e86980a +Openstack-Request-Id: req-679a3c7c-aa75-4811-936d-3743459269dc X-Openstack-Ironic-Api-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\": \"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-bbbcb18d-df72-46b8-a810-cecf751084aa +Openstack-Request-Id: req-2711ad6c-aaaf-40fe-a5a6-a7e7717644e0 X-Openstack-Ironic-Api-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\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-8d92c089-c959-4b71-b5ab-80967370a412 +Openstack-Request-Id: req-2711ad6c-aaaf-40fe-a5a6-a7e7717644e0 X-Openstack-Ironic-Api-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 +{"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 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3fe1555f-1c37-4e11-a115-fb7d6dd32104 +Openstack-Request-Id: req-022b423b-77be-4d0b-9952-a410e71cb0d4 X-Openstack-Ironic-Api-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\": \"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-872a3c75-a750-4cb0-b01a-d2b5afd9be69 +Openstack-Request-Id: req-022b423b-77be-4d0b-9952-a410e71cb0d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 {} +{"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-03e78714-0768-4195-b3a7-d2b756ca5034 +Openstack-Request-Id: req-8da9c73a-8ab9-452e-a621-80749227c672 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} +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.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_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.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.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_manager.NodeHistoryRecordCleanupTestCase.test_history_pruning_no_work +ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_pruning_no_work ... 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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.NodeSetBootModeTestCase.test_node_set_boot_mode_valid +ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_valid ... 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.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.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.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.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_112_portgroups_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_112_portgroups_get_admin ... 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.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.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.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.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_manager.UpdateNodeTestCase.test_associate_node_powered_on +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_on ... 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.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_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.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.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 +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-99519ac2-94d9-4042-a1bd-d278aa39a053 +Openstack-Request-Id: req-e33cd6e3-8ff8-4c61-8a83-affb8304a759 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-dfb4d2de-27ef-4812-ae10-3ec5ff8132d8 +Openstack-Request-Id: req-e33cd6e3-8ff8-4c61-8a83-affb8304a759 X-Openstack-Ironic-Api-Maximum-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\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +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-fef2fc08-8d3a-43c8-94df-f91f2ccc55f4 +Openstack-Request-Id: req-401f5aa2-9e68-4b2e-941b-217b555a5f30 X-Openstack-Ironic-Api-Maximum-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\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-ae88c347-5a8f-4696-bbe8-76821c8171b4 +Openstack-Request-Id: req-401f5aa2-9e68-4b2e-941b-217b555a5f30 X-Openstack-Ironic-Api-Maximum-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\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance +DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-85147743-d112-4e00-989a-74543e933c7c +Openstack-Request-Id: req-a5251d44-97bc-48bd-9058-93b06e3d739f X-Openstack-Ironic-Api-Maximum-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\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-a7421870-defe-44a3-9ca6-16d27e22bdbf +Openstack-Request-Id: req-a5251d44-97bc-48bd-9058-93b06e3d739f X-Openstack-Ironic-Api-Maximum-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.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.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_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.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_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.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.objects.test_node.TestNodeObject.test_create_with_traits -ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits ... 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.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_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.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.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.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.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.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.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_node.TestNodeObject.test_get_by_id -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id ... 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.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.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.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_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_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.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.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.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.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.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.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.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.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.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_node.TestNodeObject.test_get_by_name -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name ... 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.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.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_ipxe_config_template -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template ... 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_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.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_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_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_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.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_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.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.objects.test_node.TestNodeObject.test_get_by_uuid -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid ... 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.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.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.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.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.objects.test_node.TestNodeObject.test_get_interface -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface ... 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.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.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_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.objects.test_node.TestNodeObject.test_get_interface_overriden -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface_overriden ... 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.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.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.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.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.objects.test_node.TestNodeObject.test_list -ironic.tests.unit.objects.test_node.TestNodeObject.test_list ... 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.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.objects.test_node.TestNodeObject.test_list_with_fields -ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields ... 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.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_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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.objects.test_node.TestNodeObject.test_payload_schemas -ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas ... 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.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 -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance +DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b8bd0486-fa09-4582-8e04-dd785e599b6a +Openstack-Request-Id: req-4e283b38-2612-4e01-97fe-2cb671e79972 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-b8bd0486-fa09-4582-8e04-dd785e599b6a +Openstack-Request-Id: req-4e283b38-2612-4e01-97fe-2cb671e79972 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +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-f502c2b0-9ba5-4944-9cd3-2576d8c30f8b +Openstack-Request-Id: req-04c667b2-16bd-4284-8b4a-51bacaf12ffb 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-06T10:57:18.297595+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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f502c2b0-9ba5-4944-9cd3-2576d8c30f8b +Openstack-Request-Id: req-04c667b2-16bd-4284-8b4a-51bacaf12ffb 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-06T10:57:18.297595+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 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance +DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fd655841-7837-4397-8010-190e5cbeecd4 +Openstack-Request-Id: req-91807c33-b21c-4d6b-9068-e69b393d24c3 X-Openstack-Ironic-Api-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\": \"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-fd655841-7837-4397-8010-190e5cbeecd4 +Openstack-Request-Id: req-91807c33-b21c-4d6b-9068-e69b393d24c3 X-Openstack-Ironic-Api-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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e01abc2b-fa57-475f-92c1-3512708c9e52 +Openstack-Request-Id: req-3a7a7d99-8593-4805-b836-1b79fb299c3a 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-06T10:57:18.673213+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\": \"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-e01abc2b-fa57-475f-92c1-3512708c9e52 +Openstack-Request-Id: req-3a7a7d99-8593-4805-b836-1b79fb299c3a 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-06T10:57:18.673213+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'}}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"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'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-e4e246d6-6b45-48fb-a738-8d316573f568 +Openstack-Request-Id: req-8e3f13f1-4d51-4896-9e6f-66793ad63fbf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-e4e246d6-6b45-48fb-a738-8d316573f568 +Openstack-Request-Id: req-8e3f13f1-4d51-4896-9e6f-66793ad63fbf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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: 404 Not Found +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.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.conductor.test_manager.UpdateNodeTestCase.test_update_node +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node ... 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.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.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.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.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_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.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.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.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_manager.UpdateNodeTestCase.test_update_node_already_associated +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated ... 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.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.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.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.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.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.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.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.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.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.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_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_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.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.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.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.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.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.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok ... ok +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-680ae672-9022-4dd5-b7ac-2f5c7b31bc8c +Openstack-Request-Id: req-6c88e9e9-da5f-4888-bead-a6f63149e1ff X-Openstack-Ironic-Api-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 +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-680ae672-9022-4dd5-b7ac-2f5c7b31bc8c +Openstack-Request-Id: req-9ac62ebd-182b-4896-bf10-4100ce5555d2 X-Openstack-Ironic-Api-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 +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-47fec30c-236e-4d50-b52c-0e9ab8a40218 +Openstack-Request-Id: req-b5257175-2eac-480f-9682-4fa7e4470972 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-47fec30c-236e-4d50-b52c-0e9ab8a40218 +Openstack-Request-Id: req-118862b5-3480-4e14-b6af-9bbe007e1f66 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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.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.TestNodeObject.test_refresh -ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh ... 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_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.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.objects.test_node.TestNodeObject.test_release -ironic.tests.unit.objects.test_node.TestNodeObject.test_release ... 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.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.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.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.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.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_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_node.TestNodeObject.test_release_node_not_found -ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found ... 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.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.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.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.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.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.objects.test_node.TestNodeObject.test_reserve -ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve ... 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.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.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.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.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.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.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.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.network.test_flat.TestFlatInterface.test_remove_cleaning_network -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network ... 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_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_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_node.TestNodeObject.test_save -ironic.tests.unit.objects.test_node.TestNodeObject.test_save ... 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.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.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.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.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.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: 409 Conflict +{"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 Content-Type: application/json -Openstack-Request-Id: req-14c42c84-b235-4b9a-8af8-69dc6e87dd44 +Openstack-Request-Id: req-78b110be-cdad-43e6-82c3-c78d555beec3 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'} -GOT:Response: 409 Conflict +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 Content-Type: application/json -Openstack-Request-Id: req-d86dfc15-4e81-4f62-92c6-3bf3891dc778 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-95ad336f-706b-4d5a-ae99-53192bbb9802 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'} -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:34.960094+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-d4f7bf53-b2bf-4bab-9baa-9a0826624a02 +Openstack-Request-Id: req-6d651dcb-7533-4f7c-9b05-349461933367 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'} -GOT:Response: 409 Conflict +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 -Openstack-Request-Id: req-dd9f4b58-7dcf-4ef2-a9e1-74f37483bff2 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-c31ceac9-f40d-4f8b-8bb5-b2a8161843ab 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": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:35.123784+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-0ff45c43-e977-4769-8f70-a048cf8d7873 +Openstack-Request-Id: req-550f3452-5667-4313-b207-6d236380c5da 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted', 'configdrive': 'foo'} -GOT:Response: 400 Bad Request +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}"} +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_manager.NodeTraitsTestCase.test_remove_node_traits +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits ... 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.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.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.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.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.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.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.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.NodeTraitsTestCase.test_remove_node_traits_all +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_all ... 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.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.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.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.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.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.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_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.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.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.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.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.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.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.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_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.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.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.conductor.test_manager.UpdateNodeTestCase.test_update_node_from_invalid_driver +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_from_invalid_driver ... ok +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6a98a84b-6375-42d5-9c72-a91783259712 +Openstack-Request-Id: req-8da9c73a-8ab9-452e-a621-80749227c672 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 \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\", \"debuginfo\": null}"} -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-0911f73c-0f40-4ad1-b85f-ca3943dbe34d +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 +Content-Type: application/json +Openstack-Request-Id: req-b779cb57-77ce-4491-8429-e5dc948107df 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': 'active'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-e9b916ec-99fe-45ad-b9f0-50856b3e149c +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-b779cb57-77ce-4491-8429-e5dc948107df 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': '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-09d8557a-83cf-45f2-9677-7a81c9fc0ebc +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-2b3b8085-f819-4ffd-b603-86865d8b4561 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': 'active', 'configdrive': {'user_data': 'foo'}} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-894835f3-8f7f-46e6-84f6-0c0b53ab8b4f +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-2b3b8085-f819-4ffd-b603-86865d8b4561 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.56 - -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-ff9509af-26cd-43f9-bd7a-bb55e502d986 +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 +Content-Type: application/json +Openstack-Request-Id: req-743e4f69-c7b1-47fe-b13c-c7db2492841c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.60 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'configdrive': ['aabb']} -GOT:Response: 400 Bad Request +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-8fb2ee16-8a12-49b5-93fa-48476d945432 +Openstack-Request-Id: req-743e4f69-c7b1-47fe-b13c-c7db2492841c 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\": \"Expected types , , for configdrive: ['aabb']\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'configdrive': '{"meta_data": '} -GOT:Response: 400 Bad Request +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-1fac8f0e-3c1a-42f2-ac90-6e9ecc4b67c4 +Openstack-Request-Id: req-9e45253e-c1b3-40cc-948d-eb5ffc2459ef 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\": \"Invalid configdrive format: it is neither a JSON, nor a URL, nor a base64 string\", \"debuginfo\": null}"} -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-12975bf4-23f7-4cb7-9aa4-109e1dda08fe +X-Openstack-Ironic-Api-Version: 1.80 +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:35.203652+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-9e45253e-c1b3-40cc-948d-eb5ffc2459ef 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': '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-ac80dd9a-b972-460e-a64d-bb04c5e54920 +X-Openstack-Ironic-Api-Version: 1.80 +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:35.203652+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-07d0aff3-a546-4d77-a1a7-9548ea72cb49 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -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.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.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.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.objects.test_node.TestNodeObject.test_save_truncated -ironic.tests.unit.objects.test_node.TestNodeObject.test_save_truncated ... 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.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.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.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.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.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_validate -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_validate ... 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.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.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.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.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.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.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.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.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.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.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.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 -/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.TestNodeObject.test_save_with_conductor_group_uppercase -ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase ... 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.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.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_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.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_floppy -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_floppy ... 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-07d0aff3-a546-4d77-a1a7-9548ea72cb49 +X-Openstack-Ironic-Api-Maximum-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.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.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.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.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.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.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.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.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.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.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.objects.test_node.TestNodeObject.test_touch_provisioning -ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning ... 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.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_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.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.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.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.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_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.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.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.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.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.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.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.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_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.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup ... 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.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 ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ee429d87-5030-4f93-84a7-02686d526681 +Openstack-Request-Id: req-fc897937-9243-4b00-b00f-82322f6b0156 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30468,14 +26571,14 @@ GET: /v1/portgroups {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a283c400-72d0-475e-b043-3f8247d2e131 +Openstack-Request-Id: req-0f1aa477-e530-4322-b7c6-f52af5481a20 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-a283c400-72d0-475e-b043-3f8247d2e131 +Openstack-Request-Id: req-0f1aa477-e530-4322-b7c6-f52af5481a20 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30484,14 +26587,14 @@ GET: /v1/portgroups {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-831e84cb-f9ab-4205-a970-c73ea26c799b +Openstack-Request-Id: req-b290cdd4-4d87-4803-8263-8bbf78d16494 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-831e84cb-f9ab-4205-a970-c73ea26c799b +Openstack-Request-Id: req-b290cdd4-4d87-4803-8263-8bbf78d16494 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30500,14 +26603,14 @@ GET: /v1/portgroups {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0606fa70-f388-422f-996a-528c7d9bc5e0 +Openstack-Request-Id: req-f21a4978-b149-4242-b6dc-e777b35c4129 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-0606fa70-f388-422f-996a-528c7d9bc5e0 +Openstack-Request-Id: req-f21a4978-b149-4242-b6dc-e777b35c4129 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30516,32 +26619,32 @@ POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/portgroups/e158f903-2177-44be-910b-a31471135568 -Openstack-Request-Id: req-6603b87c-0543-40ae-842a-52526dae7bed +Location: http://localhost/v1/portgroups/d0de7db5-acd5-456b-bbb1-473dae0dc258 +Openstack-Request-Id: req-1c72aefd-df66-48d6-980f-9e2af8ed0ea0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e158f903-2177-44be-910b-a31471135568", "created_at": "2024-01-06T10:57:21.907479+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/e158f903-2177-44be-910b-a31471135568", "rel": "self"}, {"href": "http://localhost/portgroups/e158f903-2177-44be-910b-a31471135568", "rel": "bookmark"}], "node_uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "ports": [{"href": "http://localhost/v1/portgroups/e158f903-2177-44be-910b-a31471135568/ports", "rel": "self"}, {"href": "http://localhost/portgroups/e158f903-2177-44be-910b-a31471135568/ports", "rel": "bookmark"}]} +{"uuid": "d0de7db5-acd5-456b-bbb1-473dae0dc258", "created_at": "2025-02-07T17:33:35.331329+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/d0de7db5-acd5-456b-bbb1-473dae0dc258", "rel": "self"}, {"href": "http://localhost/portgroups/d0de7db5-acd5-456b-bbb1-473dae0dc258", "rel": "bookmark"}], "node_uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "ports": [{"href": "http://localhost/v1/portgroups/d0de7db5-acd5-456b-bbb1-473dae0dc258/ports", "rel": "self"}, {"href": "http://localhost/portgroups/d0de7db5-acd5-456b-bbb1-473dae0dc258/ports", "rel": "bookmark"}]} ACL Test GOT Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/portgroups/e158f903-2177-44be-910b-a31471135568 -Openstack-Request-Id: req-6603b87c-0543-40ae-842a-52526dae7bed +Location: http://localhost/v1/portgroups/d0de7db5-acd5-456b-bbb1-473dae0dc258 +Openstack-Request-Id: req-1c72aefd-df66-48d6-980f-9e2af8ed0ea0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e158f903-2177-44be-910b-a31471135568", "created_at": "2024-01-06T10:57:21.907479+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/e158f903-2177-44be-910b-a31471135568", "rel": "self"}, {"href": "http://localhost/portgroups/e158f903-2177-44be-910b-a31471135568", "rel": "bookmark"}], "node_uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "ports": [{"href": "http://localhost/v1/portgroups/e158f903-2177-44be-910b-a31471135568/ports", "rel": "self"}, {"href": "http://localhost/portgroups/e158f903-2177-44be-910b-a31471135568/ports", "rel": "bookmark"}]} +{"uuid": "d0de7db5-acd5-456b-bbb1-473dae0dc258", "created_at": "2025-02-07T17:33:35.331329+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/d0de7db5-acd5-456b-bbb1-473dae0dc258", "rel": "self"}, {"href": "http://localhost/portgroups/d0de7db5-acd5-456b-bbb1-473dae0dc258", "rel": "bookmark"}], "node_uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "ports": [{"href": "http://localhost/v1/portgroups/d0de7db5-acd5-456b-bbb1-473dae0dc258/ports", "rel": "self"}, {"href": "http://localhost/portgroups/d0de7db5-acd5-456b-bbb1-473dae0dc258/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-d10b8307-90c2-43c1-8de4-c5566ccfe3e0 +Openstack-Request-Id: req-0676d693-ee0a-4ad8-bb40-81fc22283f95 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-d10b8307-90c2-43c1-8de4-c5566ccfe3e0 +Openstack-Request-Id: req-0676d693-ee0a-4ad8-bb40-81fc22283f95 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30550,2109 +26653,2298 @@ POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7a25a320-0a80-481d-8805-33e25b960990 +Openstack-Request-Id: req-16d873cb-49f4-429f-ae61-9e1f6103fd13 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-7a25a320-0a80-481d-8805-33e25b960990 +Openstack-Request-Id: req-16d873cb-49f4-429f-ae61-9e1f6103fd13 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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.test_base.BlockExecuteTestCase.test_can_mock_execute -ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute ... 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.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.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.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.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.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.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.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.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.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.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.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.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_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_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 -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.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute -ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute ... ok -GOT:Response: 404 Not Found +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.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.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.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_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.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_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 +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-c21c7f14-1a36-4e0a-bf12-61bf14575aa0 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-13305169-25e1-46b4-b743-592ca4bb5a91 X-Openstack-Ironic-Api-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 7385f68d-be0d-4797-badb-6445d14caafe 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 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:35.286518+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-ee21ae8b-06b6-4833-aa25-0874362785a6 +Openstack-Request-Id: req-612a1d00-290f-4817-96a1-a54ca1eab1fa 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-06T10:56:47.723533+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'}] +{"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 +Openstack-Request-Id: req-d16b2919-0a07-4ec6-9e63-6040eda3d535 +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'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-77a94024-fefd-456e-837f-962a89742cae +Openstack-Request-Id: req-a618189a-b979-4252-b093-465df0ff9030 +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-de91a044-d089-483e-8f18-ffcfb0491c3b X-Openstack-Ironic-Api-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'}] +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:35.635989+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/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-14662999-d6dc-4e99-a400-1d31571919db +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-07T17:33:35.768941+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-fc57e2e5-084d-453c-8841-d049eb05b906 +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-07T17:33:35.901966+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'} +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.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.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_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.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_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.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception ... 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_change_node_power_state_unsupported_state +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_unsupported_state ... 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.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_management.DracManagementTestCase.test_get_boot_device +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device ... 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.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.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.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.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.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.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.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.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.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_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.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_portgroup +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup ... 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_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.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_fail +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_fail ... 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-f93c2305-946d-4ac7-a030-5c943ce723ad +Openstack-Request-Id: req-d2e9a8cb-ff77-42ff-995a-99afe9b87058 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-06T10:56:47.832571+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 +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:35.823829+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-af6b25c9-dce2-499a-9b4e-667ae74de30c +Openstack-Request-Id: req-d2e9a8cb-ff77-42ff-995a-99afe9b87058 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}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/properties/abc', 'op': 'add', 'value': 123}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.80 +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:35.823829+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-ae22b4a4-6809-4e19-858d-111db5426364 +Openstack-Request-Id: req-67c52960-4b7a-403a-97ef-1a180359107c 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}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/standalone_ports_supported', 'value': False, 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.80 +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:36.006585+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-67c52960-4b7a-403a-97ef-1a180359107c +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-07T17:33:36.006585+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-d2ddd9d6-b48c-446e-9141-23986877d618 +Openstack-Request-Id: req-0837d0d0-bb2c-4af1-b41f-2f0262c240ae 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-06T10:56:47.965374+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 +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:36.175800+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 -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -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.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.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.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.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.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.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.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.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 -API ACL Testing Path delete /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-0837d0d0-bb2c-4af1-b41f-2f0262c240ae +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-07T17:33:36.175800+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-332ba052-f730-4211-9342-b5c3dc8d0164 +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-07T17:33:36.356979+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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-50ee2144-ff9c-4843-80c0-6224904385ad +Openstack-Request-Id: req-5aa14915-2ef0-4e8e-b2c9-99507b591e5b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-50ee2144-ff9c-4843-80c0-6224904385ad +Openstack-Request-Id: req-5aa14915-2ef0-4e8e-b2c9-99507b591e5b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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: 404 Not Found +API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device +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-27f21f07-b65f-420d-ae58-cc7346a87b42 +Openstack-Request-Id: req-cc42d665-7f5f-4add-87b9-b3383468a0e3 X-Openstack-Ironic-Api-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\": \"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-27f21f07-b65f-420d-ae58-cc7346a87b42 +Openstack-Request-Id: req-cc42d665-7f5f-4add-87b9-b3383468a0e3 X-Openstack-Ironic-Api-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\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device +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-65ec46be-efd0-415b-b7ed-43b85166e712 +Openstack-Request-Id: req-7508953f-fbd1-4ac8-a255-41d05b90bb85 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:node:set_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-65ec46be-efd0-415b-b7ed-43b85166e712 +Openstack-Request-Id: req-7508953f-fbd1-4ac8-a255-41d05b90bb85 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"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'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-83957a7a-84ce-4b41-bde6-e41a5bcc3e5e +Openstack-Request-Id: req-21fd2ae0-2931-4895-ac3e-294e7cd1accf 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:set_boot_device\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-83957a7a-84ce-4b41-bde6-e41a5bcc3e5e +Openstack-Request-Id: req-21fd2ae0-2931-4895-ac3e-294e7cd1accf 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:node:set_boot_device\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device +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-22d7ed2f-11ee-495c-9178-edaf403676f6 +Openstack-Request-Id: req-cf150b85-9ce5-486f-88bf-ab6443b41fb3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:node:set_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-22d7ed2f-11ee-495c-9178-edaf403676f6 +Openstack-Request-Id: req-cf150b85-9ce5-486f-88bf-ab6443b41fb3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"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'} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-cc59d522-54f4-43b8-9c27-85c4933a42d4 +Openstack-Request-Id: req-90b4aad9-e5f0-4fda-bf16-a67971e6c335 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\": \"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-cc59d522-54f4-43b8-9c27-85c4933a42d4 +Openstack-Request-Id: req-90b4aad9-e5f0-4fda-bf16-a67971e6c335 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\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device {} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Location: http://localhost/v1/volume/targets/24d8f06a-9357-4667-b290-2575fc64e320 -Openstack-Request-Id: req-7e115bbc-cee2-43d9-a2b4-d56e5840f775 +Openstack-Request-Id: req-53229b75-7881-4ee4-90d7-0ebb4f751a42 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "24d8f06a-9357-4667-b290-2575fc64e320", "created_at": "2024-01-06T10:57:24.259372+00:00", "updated_at": null, "boot_index": 4, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/24d8f06a-9357-4667-b290-2575fc64e320", "rel": "self"}, {"href": "http://localhost/volume/targets/24d8f06a-9357-4667-b290-2575fc64e320", "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 -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.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.controllers.v1.test_node.TestPut.test_put_raid -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid ... 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.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.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_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.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.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.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_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.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.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.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.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_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.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.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.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.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_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_image_utils.RedfishImageUtilsTestCase.test__find_param_not_found -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param_not_found ... 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/tmpr47ksj_6/tmpevg8zlgv' -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.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.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.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_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.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.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_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_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.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_local -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_local ... 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.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.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.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.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.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_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__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.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.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_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 -API ACL Testing Path get /v1/portgroups/detail -GET: /v1/portgroups/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-19db394c-42f3-46b0-afeb-e9595509e7f4 +Openstack-Request-Id: req-53229b75-7881-4ee4-90d7-0ebb4f751a42 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-06T10:57:24.038258+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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device {} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-19db394c-42f3-46b0-afeb-e9595509e7f4 +Openstack-Request-Id: req-ebfe01e7-80cc-4e55-b133-ab33ac37feb2 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-06T10:57:24.038258+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 +{"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-0fd652ee-ab30-4d2a-b962-60938d45c0ff +Openstack-Request-Id: req-ebfe01e7-80cc-4e55-b133-ab33ac37feb2 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-06T10:57:24.419118+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\": \"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.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.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.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.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.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.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.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.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.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.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.drac.test_management.DracManagementTestCase.test_reset_idrac +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_reset_idrac ... 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__parse_config_option +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option ... 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.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.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port ... ok +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-0fd652ee-ab30-4d2a-b962-60938d45c0ff +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-10477282-ba0f-4ff2-9ecd-a62bc19dea52 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-06T10:57:24.419118+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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:36.033153+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-1a412923-3125-4338-9ce2-f2d49f15dcf2 +Openstack-Request-Id: req-57d66fa5-8fe4-44d5-a493-20383ce47bf9 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-06T10:57:24.586992+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\": \"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 -Openstack-Request-Id: req-1a412923-3125-4338-9ce2-f2d49f15dcf2 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-3c025ee9-16d4-4ef9-9c98-164dbf20fb14 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-06T10:57:24.586992+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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:36.246320+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-5c7457d6-b5fc-47c1-9f8e-3cff0896e095 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-d4b81315-f284-4826-852c-504a4ff91f4e 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-06T10:57:24.780808+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.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.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.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_agent.AgentRescueTestCase.test_agent_rescue -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue ... 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.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.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.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network ... ok -GOT:Response: 404 Not Found +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:36.329941+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': 'bddcd44b-715f-4ef3-9c87-706947ca868f', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-f4023841-a33f-4d49-958b-ae9930445b97 +Openstack-Request-Id: req-2d2f6cc8-e2a4-40ee-ab0e-961912062d91 X-Openstack-Ironic-Api-Maximum-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 {} -GOT:Response: 500 Internal Server Error +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node bddcd44b-715f-4ef3-9c87-706947ca868f 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-fdad5a4e-4eee-41c3-adb8-13d68aecd988 +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-cd6bf7c7-1a6c-4624-ada5-e3ea22f0ab7b +Openstack-Request-Id: req-b05eeeae-d81c-472f-a9cd-031482561bf0 X-Openstack-Ironic-Api-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 +{"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-676bb572-8ccc-496e-9be2-a859706c5cda +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_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.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.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.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.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.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.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 +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-84d309e1-89ff-4d93-b56b-c184f358109a +Openstack-Request-Id: req-47109f97-1792-4ae3-ae11-1b95e6669eb3 X-Openstack-Ironic-Api-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 +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:35.566947+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-a4b6d15d-c993-4a4b-aff6-8b54d66ecc37 +Openstack-Request-Id: req-47109f97-1792-4ae3-ae11-1b95e6669eb3 X-Openstack-Ironic-Api-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 +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:35.566947+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-58770579-ec0d-4ed9-843a-b54d2815296c +Openstack-Request-Id: req-1fa93f97-7e72-440f-86e3-f384d10d4522 X-Openstack-Ironic-Api-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 +{"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-6942a7a6-3083-4653-a577-acabf8ec9118 +Openstack-Request-Id: req-1fa93f97-7e72-440f-86e3-f384d10d4522 X-Openstack-Ironic-Api-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 +{"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-db8055ec-459b-4c10-8e7f-15fb4568369c +Openstack-Request-Id: req-89bc8056-483a-4531-82f7-264db0f2c22c X-Openstack-Ironic-Api-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 +{"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-f855a191-ea49-405d-bc58-9940636ed134 +Openstack-Request-Id: req-89bc8056-483a-4531-82f7-264db0f2c22c X-Openstack-Ironic-Api-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\": \"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-3d7fed7e-2ae0-4eee-b5f7-2ab3d885b648 +Openstack-Request-Id: req-97ea41f1-f817-470c-b6e1-5580e29392b7 X-Openstack-Ironic-Api-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 +{"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-e30eeb92-e028-4866-825e-77dfffee1256 +Openstack-Request-Id: req-97ea41f1-f817-470c-b6e1-5580e29392b7 X-Openstack-Ironic-Api-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 +{"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 -Openstack-Request-Id: req-bfb5c538-9127-4e7a-8267-9cf26fd6bb44 +Openstack-Request-Id: req-8c39ae94-8cd6-4a15-87a1-5cf30d0deef3 X-Openstack-Ironic-Api-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 +{"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-02eab43b-c587-4885-9ef9-6aad4fb75871 +Openstack-Request-Id: req-8c39ae94-8cd6-4a15-87a1-5cf30d0deef3 X-Openstack-Ironic-Api-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 +{"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 Content-Type: application/json -Openstack-Request-Id: req-659af2a5-2778-4f78-9740-a49747751f0a +Openstack-Request-Id: req-8101fa9e-d42d-46ef-8860-7791d922b101 X-Openstack-Ironic-Api-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 {} -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_agent.AgentRescueTestCase.test_agent_rescue_clean_up -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up ... 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.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.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.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_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.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_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.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.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.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_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.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.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.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 -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'deploy_steps': [{'interface': 'bios', 'step': 'factory_reset'}]} -GOT:Response: 406 Not Acceptable +{"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-0eb036ba-9761-4d4a-9193-0ace0c60618b +Openstack-Request-Id: req-8101fa9e-d42d-46ef-8860-7791d922b101 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.69\", \"debuginfo\": null}"} -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-ca151f68-5e6d-4f07-9e44-845ef1016cd8 +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 +Content-Type: application/json +Openstack-Request-Id: req-9c9cd67b-4671-4163-8833-30494451ebf2 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'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-625680f4-252e-4c3e-9db1-dcf3c4edf6cc +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-9c9cd67b-4671-4163-8833-30494451ebf2 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': {}}]} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-1d5581d6-d358-4e72-bd9c-c66079982276 +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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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_manager.UpdateNodeTestCase.test_update_node_interface_invalid +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_invalid ... 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.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.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.drac.test_power.DracPowerTestCase.test_get_properties +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_properties ... 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.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.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_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.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.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.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.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_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.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.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.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.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_caller_exception +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_caller_exception ... ok +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-332ba052-f730-4211-9342-b5c3dc8d0164 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'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:36.356979+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-94b94a6a-a1a8-42ef-b288-300145db9b93 +Openstack-Request-Id: req-5f4ab82e-cf9c-4a22-80dc-003a2e61d8c6 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-8d988e8e-6909-4cc1-ac49-0d8a74045cbc +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:36.592516+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-5f4ab82e-cf9c-4a22-80dc-003a2e61d8c6 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-a597938d-4275-4d7f-a731-47ad1760827b +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:36.592516+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-80b997f8-9658-45b5-9393-a30ef53655d9 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-fc1f6ab8-a807-4b95-ba3e-8dc8d9c5e13d +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:36.765109+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-80b997f8-9658-45b5-9393-a30ef53655d9 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-4fbb3b0a-c809-4e86-a800-4a3da1a22fbd +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:36.765109+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-a9e9b6b9-0f46-4c75-9c3b-9c3fa81a2b74 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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-3db05f5d-6d59-40d9-919e-723b34dda5ac +Openstack-Request-Id: req-a9e9b6b9-0f46-4c75-9c3b-9c3fa81a2b74 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 +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-6a04363b-0c96-4bdc-b2e2-3bbda6569421 +Openstack-Request-Id: req-637f5272-0f1d-4082-a425-4648fb2fcc2c 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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-5173dec9-dfe1-486c-8e4e-54b339c6d7c6 +Openstack-Request-Id: req-637f5272-0f1d-4082-a425-4648fb2fcc2c 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\": \"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-1a7938ae-8495-480e-a0bb-53abd1ea4951 +Openstack-Request-Id: req-c575a75e-adfb-4ba0-86e5-fe7b9e881736 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\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} +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_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.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_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.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 +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-330d0825-619c-4842-8b55-e9fbe9119ae6 +Openstack-Request-Id: req-850cce14-2e25-482c-91ca-f782e8519caa 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\": \"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-47cdb3a4-4bf3-4d84-98e3-c67c07774a02 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-de9f2b42-e4ed-4aa7-8bbc-b3378135e222 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': ''} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:37.028350+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-07T17:33:37.028350+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 -Openstack-Request-Id: req-f7db0cfc-dc2e-465f-a9ac-9fddd4524aee +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-072f938b-75f7-4a33-89c4-89c5c63b044d 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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:37.152274+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-62924696-d243-4bfa-bf3f-ca1242a36b08 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-a6573381-8ef9-4d8e-93a7-733c693e043e 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} -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.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.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.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.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_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.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.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.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.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.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.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 -ACL Test GOT Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:37.257147+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/volume/targets/24d8f06a-9357-4667-b290-2575fc64e320 -Openstack-Request-Id: req-7e115bbc-cee2-43d9-a2b4-d56e5840f775 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-41b2fd30-4c17-4c7d-a05b-63169fa2f09e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "24d8f06a-9357-4667-b290-2575fc64e320", "created_at": "2024-01-06T10:57:24.259372+00:00", "updated_at": null, "boot_index": 4, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/24d8f06a-9357-4667-b290-2575fc64e320", "rel": "self"}, {"href": "http://localhost/volume/targets/24d8f06a-9357-4667-b290-2575fc64e320", "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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:37.369053+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'} +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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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__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.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.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.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_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.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.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.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.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.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.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_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.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.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.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.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 +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b528a86e-75cc-4da8-a9b5-8abfa900aacc +Openstack-Request-Id: req-9c0789f0-cb24-4ff0-8005-4f209994371f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:36.941115+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-b528a86e-75cc-4da8-a9b5-8abfa900aacc +Openstack-Request-Id: req-9c0789f0-cb24-4ff0-8005-4f209994371f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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'} +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:36.941115+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-772ea7fc-362e-4812-ac95-9c18d82e8a84 +Openstack-Request-Id: req-5af3232c-5bd2-49c6-b5a3-66cc7eecd401 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:list\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-772ea7fc-362e-4812-ac95-9c18d82e8a84 +Openstack-Request-Id: req-5af3232c-5bd2-49c6-b5a3-66cc7eecd401 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: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-ed39a555-e0ec-44de-99a5-4595afbcb45d +Openstack-Request-Id: req-a1641f6e-1589-4964-8e9e-62fb042bd6f9 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-06T10:57:24.768355+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": "2025-02-07T17:33:37.274956+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-ed39a555-e0ec-44de-99a5-4595afbcb45d +Openstack-Request-Id: req-a1641f6e-1589-4964-8e9e-62fb042bd6f9 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-06T10:57:24.768355+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": "2025-02-07T17:33:37.274956+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-c22a6cf4-5c30-4ee9-b425-1f08406b0afd +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-07T17:33:37.467829+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-c22a6cf4-5c30-4ee9-b425-1f08406b0afd +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-07T17:33:37.467829+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-ffa35fee-8e68-4d33-92de-de30f950fdff +Openstack-Request-Id: req-80f4fdc2-0fcd-4e91-ae1e-73cafcb3adae X-Openstack-Ironic-Api-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}"} +{"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-ffa35fee-8e68-4d33-92de-de30f950fdff +Openstack-Request-Id: req-80f4fdc2-0fcd-4e91-ae1e-73cafcb3adae X-Openstack-Ironic-Api-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: 200 OK +{"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.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.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_manager.UpdateNodeTestCase.test_update_node_retired_set +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_set ... 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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 +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1d93281e-e882-4069-879b-f21aeb4d67c1 +Openstack-Request-Id: req-c5b3eca1-07c3-4f25-83f7-cfc77b59c264 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-06T10:57:25.140320+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 +{"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-1d93281e-e882-4069-879b-f21aeb4d67c1 +Openstack-Request-Id: req-c5b3eca1-07c3-4f25-83f7-cfc77b59c264 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-06T10:57:25.140320+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 +{"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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8ab2ccb8-d9ca-44c9-9d7f-c96a798839d3 +Openstack-Request-Id: req-4cbee26c-5516-410c-933b-c0d69734bfcd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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.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.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.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_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.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.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.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_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.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.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.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.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.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_defaults -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_defaults ... 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.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.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.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.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.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.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.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.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.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.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 -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-5c7457d6-b5fc-47c1-9f8e-3cff0896e095 +Openstack-Request-Id: req-4cbee26c-5516-410c-933b-c0d69734bfcd 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-06T10:57:24.780808+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\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"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 {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6a8aa284-b1ea-4811-a87e-5cdb7b37037a +Openstack-Request-Id: req-1e0eb528-63cb-456a-9e79-ee53552a5df7 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-06T10:57:25.015645+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:get_boot_device\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6a8aa284-b1ea-4811-a87e-5cdb7b37037a +Openstack-Request-Id: req-1e0eb528-63cb-456a-9e79-ee53552a5df7 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-06T10:57:25.015645+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\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-61f680e0-b5f7-4a32-92b1-8acda6902d8d +Openstack-Request-Id: req-9e4c6e75-5ba3-4ba5-accf-14dfd8b97342 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-06T10:57:25.135427+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:get_boot_device\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-61f680e0-b5f7-4a32-92b1-8acda6902d8d +Openstack-Request-Id: req-9e4c6e75-5ba3-4ba5-accf-14dfd8b97342 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-06T10:57:25.135427+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'}}] +{"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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device {} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-6e7d8e42-e603-4635-85c9-35a7ce04d617 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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-6e7d8e42-e603-4635-85c9-35a7ce04d617 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-9dc997c2-516e-42a5-8aeb-20a7a6198b9e +X-Openstack-Ironic-Api-Maximum-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-9dc997c2-516e-42a5-8aeb-20a7a6198b9e +X-Openstack-Ironic-Api-Maximum-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/management/boot_device/supported +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-7c8039f1-f690-4e32-99ee-46083745e96e +Openstack-Request-Id: req-88c888b1-2651-4491-aa50-a1a53c2cf3e2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-7c8039f1-f690-4e32-99ee-46083745e96e +Openstack-Request-Id: req-88c888b1-2651-4491-aa50-a1a53c2cf3e2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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'}}] +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 {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-21b730fe-dbe5-4797-b8f0-eee1a9618221 +Openstack-Request-Id: req-7e00b136-9ee6-41bf-bedd-e11498c6a6d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-21b730fe-dbe5-4797-b8f0-eee1a9618221 +Openstack-Request-Id: req-7e00b136-9ee6-41bf-bedd-e11498c6a6d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +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.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.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 +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-3416a879-8d01-427b-b077-4cda56495278 +Openstack-Request-Id: req-725b1fa9-34b8-4b1c-b517-87dc0fcbf0dd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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_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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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_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.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk ... 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.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.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.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_cleanup_iso_image -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_iso_image ... 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.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.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.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.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.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_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.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.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.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_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_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.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.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.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.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.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.test_agent.AgentRescueTestCase.test_agent_unrescue -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue ... 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.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.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.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.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.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.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.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.ilo.test_management.IloManagementTestCase.test_create_csr -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_create_csr ... 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.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.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 -ACL Test GOT Response: 503 Service Unavailable +{"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 -Openstack-Request-Id: req-8ab2ccb8-d9ca-44c9-9d7f-c96a798839d3 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-a86ffb13-54a5-46f5-8e0a-9f8b58ce76b2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:37.566933+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 +Openstack-Request-Id: req-a99ed14c-f7a4-42be-883a-fbff8716dc90 +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'}} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-913d791f-7668-4853-b835-d21060b7becb +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-75bdebfe-a92a-49c5-be0d-a95dfafa2f6c +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-aa058c64-7878-406c-af23-67516e938ff0 X-Openstack-Ironic-Api-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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:37.875262+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-75bdebfe-a92a-49c5-be0d-a95dfafa2f6c +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-ba58802d-1f02-4eff-9b75-22d2d866198f X-Openstack-Ironic-Api-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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:37.974416+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-5741a35d-7db0-4a39-804a-820420de41b0 +Openstack-Request-Id: req-d68e6258-71d9-4a89-bc3a-f57a121e988a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} +{"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-9bf84830-9e29-460c-a0bf-dbb208378c48 +X-Openstack-Ironic-Api-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}"} +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_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.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.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.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.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.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_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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image ... 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.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.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.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.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.conductor.test_periodics.NodePeriodicTestCase.test_exclusive +ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_exclusive ... 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.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.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps ... ok ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-5741a35d-7db0-4a39-804a-820420de41b0 +Openstack-Request-Id: req-c575a75e-adfb-4ba0-86e5-fe7b9e881736 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-c04253e4-c6e9-4a6b-8983-6de6c03ea75a +Openstack-Request-Id: req-81322028-a93f-4133-b616-33aba65822f4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-c04253e4-c6e9-4a6b-8983-6de6c03ea75a +Openstack-Request-Id: req-81322028-a93f-4133-b616-33aba65822f4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +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-3a764538-b88f-4501-844e-05371f052c05 +Openstack-Request-Id: req-22e29ca7-daa4-4f63-832f-0ec2f75d058f X-Openstack-Ironic-Api-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:portgroup:delete\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3a764538-b88f-4501-844e-05371f052c05 +Openstack-Request-Id: req-22e29ca7-daa4-4f63-832f-0ec2f75d058f X-Openstack-Ironic-Api-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 +{"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-5e07f5cb-4805-4440-a408-883757107a18 +Openstack-Request-Id: req-d1580599-27a8-406a-9217-1376afe8d71b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:portgroup:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-5e07f5cb-4805-4440-a408-883757107a18 +Openstack-Request-Id: req-d1580599-27a8-406a-9217-1376afe8d71b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 {} +{"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-2ce80f8a-cc30-4b05-bff3-bc0fce8a4bdf +Openstack-Request-Id: req-ad4f0606-6223-443a-8f4a-ba4a713c58ae 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"}]} +{"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-2ce80f8a-cc30-4b05-bff3-bc0fce8a4bdf +Openstack-Request-Id: req-ad4f0606-6223-443a-8f4a-ba4a713c58ae 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: 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/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-996adc37-ea4a-4baa-8d02-cc1a06e1188f +Openstack-Request-Id: req-241fe9ac-f6e1-4e8b-a27f-11c954545963 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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.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.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.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.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.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.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.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.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk ... 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.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_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.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.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_agent_power.AgentPowerTest.test_basics -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_basics ... 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.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.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.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_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_agent_power.AgentPowerTest.test_get_power_state -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state ... ok -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-460b788d-958b-4656-a01b-6187bfe7c42f -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-7ed2a3f3-567a-4bd5-95c5-9dd318f97989 +{"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-241fe9ac-f6e1-4e8b-a27f-11c954545963 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} -GOT:Response: 400 Bad Request +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 Content-Type: application/json -Openstack-Request-Id: req-3ba4e198-8afe-4bba-95a1-e2a2601c010f +Openstack-Request-Id: req-5d644d4e-07f2-4947-91a6-488c9aedb937 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} -GOT:Response: 404 Not Found +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-7a17de86-d44f-4e7e-adf0-a9d5ec438d05 +Openstack-Request-Id: req-5d644d4e-07f2-4947-91a6-488c9aedb937 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} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-9330d7fa-4c9f-47a3-93b7-07a1d8e3200e +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.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.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.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.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.conductor.test_periodics.NodePeriodicTestCase.test_interface_check +ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_interface_check ... 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.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.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.conductor.test_periodics.NodePeriodicTestCase.test_limit +ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_limit ... 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_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.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_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_usersteps +ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_usersteps ... 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.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.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__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.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.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.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.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.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_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_ok +ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_ok ... 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 +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-69242734-9210-42f7-8e55-878a211a7026 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': 1} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-b6a20be2-37e7-4a35-a630-854e08088aa1 +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-c570dfce-60c3-4bc7-b25b-370170f02057 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/management/boot_device {'boot_device': 'pxe'} -GOT:Response: 204 No Content -Openstack-Request-Id: req-b43a7e26-e6b7-4d56-9f76-5fa1238259e3 +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-d419b043-67b6-4144-a77a-d5b672f118ae 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-6962e0be-a814-4f00-88e4-0282af86ae65 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:38.554134+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'} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-92cc5bd8-9b90-40eb-a5ad-e4c1e3e79b78 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'} -GOT:Response: 400 Bad Request +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-a0bf98fc-751b-4dbb-a7be-0fbc4a084613 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-c0f5727d-1689-4437-a37b-f33f928df63e 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-631f0887-3728-4a45-b892-58300e88c1d1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:38.753230+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-f5f5b1cf-d8cb-4f3d-8e3a-5a23f289c030 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'} -GOT:Response: 400 Bad Request +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-08651ea6-df2a-452a-a409-370879988cd0 +Openstack-Request-Id: req-b2468d4e-8079-45c3-8268-cb960e714528 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-5b29ff80-5a6c-4dff-aa93-d653bf57bed2 +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 +Content-Type: application/json +Openstack-Request-Id: req-f00de2e7-78c0-4a46-9c85-b95deb8d9c94 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'} -GOT:Response: 404 Not Found +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'} +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.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.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.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.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_skip_missing +ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_skip_missing ... 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.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_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.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.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_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.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.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.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.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.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.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_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 +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8c7ec69d-954d-4f7c-a1c4-92322ede5534 +Openstack-Request-Id: req-40a0b312-0a72-4e0e-9210-def05c422b8f 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 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:37.795596+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-fa281327-3c68-48dc-8931-dfeaf8f018f4 +Openstack-Request-Id: req-40a0b312-0a72-4e0e-9210-def05c422b8f 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": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:37.795596+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-4ffff850-7e60-4082-aa28-3fa7f3b68eb1 +Openstack-Request-Id: req-0f5ac84a-2368-48d9-9c83-033dc4b0495b 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 +{"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-3e3d8738-80c6-4236-a454-c6bed6d03ed0 +Openstack-Request-Id: req-0f5ac84a-2368-48d9-9c83-033dc4b0495b 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-ae7da086-fe11-4db9-b614-15aa707dee10 +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 +Content-Type: application/json +Openstack-Request-Id: req-c019fe10-d1b2-4a0a-b96b-0b17866c03e6 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-0efa1c2b-d019-4199-a968-c67a0a4e52c7 +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-c019fe10-d1b2-4a0a-b96b-0b17866c03e6 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-549c10ed-c7c3-45e1-9313-ca37bf235303 +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: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-92d6cdad-86b1-4ae7-a231-de4356db88ca 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 {} -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.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.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_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_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.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.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.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.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.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.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.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.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.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_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.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 +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 Content-Type: application/json -Openstack-Request-Id: req-3416a879-8d01-427b-b077-4cda56495278 +Openstack-Request-Id: req-92d6cdad-86b1-4ae7-a231-de4356db88ca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-3d48da5e-c123-476e-a12a-367e2f7ec7be +Openstack-Request-Id: req-788d9caf-cdab-49aa-b80e-c9c77bd370c0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-3d48da5e-c123-476e-a12a-367e2f7ec7be +Openstack-Request-Id: req-788d9caf-cdab-49aa-b80e-c9c77bd370c0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 -GOT:Response: 403 Forbidden +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-93b87706-9543-4acc-a635-6e414f7ea96b +Openstack-Request-Id: req-054c82b6-d45d-47d5-aecc-0099a51aee1c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-93b87706-9543-4acc-a635-6e414f7ea96b +Openstack-Request-Id: req-054c82b6-d45d-47d5-aecc-0099a51aee1c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-978f73d0-cdcb-470a-a70e-04451e8001a1 +Openstack-Request-Id: req-758b8d6a-0309-4663-9e05-c501237bd881 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:port:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-978f73d0-cdcb-470a-a70e-04451e8001a1 +Openstack-Request-Id: req-758b8d6a-0309-4663-9e05-c501237bd881 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 {} +{"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.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.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.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_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.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.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.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.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.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.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_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception ... 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.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_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.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok ... 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.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_off +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_off ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-64d24152-847e-4084-8e0e-fd17b99c6a91 +Openstack-Request-Id: req-64a4c529-f4a9-4602-9965-99d69e7ed713 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"}]}]} +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:38.792520+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-64d24152-847e-4084-8e0e-fd17b99c6a91 +Openstack-Request-Id: req-64a4c529-f4a9-4602-9965-99d69e7ed713 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 {} +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:38.792520+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-7de280ea-40d2-4e4a-b58c-a2b2cce943e7 +Openstack-Request-Id: req-b9c54947-40b2-4972-b9f6-06685543052f 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"}]}]} +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:38.943683+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-7de280ea-40d2-4e4a-b58c-a2b2cce943e7 +Openstack-Request-Id: req-b9c54947-40b2-4972-b9f6-06685543052f 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 {} +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:38.943683+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-88641a6d-b44a-4c67-b27f-9b833ca63af9 +Openstack-Request-Id: req-769993a6-34bf-48f1-9863-a377627956dd 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"}]}]} +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:39.122038+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-88641a6d-b44a-4c67-b27f-9b833ca63af9 +Openstack-Request-Id: req-769993a6-34bf-48f1-9863-a377627956dd 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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_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.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.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.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.drivers.modules.test_agent_power.AgentPowerTest.test_validate -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate ... 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_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 -GOT:Response: 500 Internal Server Error +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T17:33:39.122038+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-e63d436f-06bc-4211-b0f5-cad9aba7f28c +Openstack-Request-Id: req-a08e6da7-dbc0-4db8-a1ad-8d0667b9d918 X-Openstack-Ironic-Api-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 {} -GOT:Response: 500 Internal Server Error +{"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-76089f2c-303e-4dd1-bb98-058be3937ddd +Openstack-Request-Id: req-a08e6da7-dbc0-4db8-a1ad-8d0667b9d918 X-Openstack-Ironic-Api-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 {} -GOT:Response: 500 Internal Server Error +{"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.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.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.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.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.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.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.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.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.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.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.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.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_ramdisk.TestHeartbeat.test_ok_agent_token +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_token ... 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.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_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.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 +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d2e89c06-a2f3-449d-b38b-616604702e7e +Openstack-Request-Id: req-4996d3f0-3d00-4489-bd81-6b3db7457807 X-Openstack-Ironic-Api-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 -GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} -GOT:Response: 500 Internal Server Error +{"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-2cb1829a-18d3-4af2-8e41-2d3940d74a70 +Openstack-Request-Id: req-4996d3f0-3d00-4489-bd81-6b3db7457807 X-Openstack-Ironic-Api-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 -GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} -GOT:Response: 500 Internal Server Error +{"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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device/supported +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device/supported {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-db7db171-47d4-4466-9b40-050873519dee +Openstack-Request-Id: req-244a6892-e4c2-4e8b-81b1-b101f494378b X-Openstack-Ironic-Api-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 -GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} -GOT:Response: 500 Internal Server Error +{"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-a4377357-ad0e-451f-a835-d8a8fa799228 +Openstack-Request-Id: req-244a6892-e4c2-4e8b-81b1-b101f494378b X-Openstack-Ironic-Api-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 post /v1/drivers/fake-driverz/vendor_passthru?method=test -POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None -GOT:Response: 500 Internal Server Error +{"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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device/supported +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device/supported {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-cf34351d-aaea-4c6e-9a1a-5093d42a4b78 +Openstack-Request-Id: req-fafc1f24-2e17-46d0-888a-f59a1e3f374b X-Openstack-Ironic-Api-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 post /v1/drivers/fake-driverz/vendor_passthru?method=test -POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None -GOT:Response: 500 Internal Server Error +{"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-1ea52dc6-1763-4b17-8fd2-900a2c3d67a5 +Openstack-Request-Id: req-fafc1f24-2e17-46d0-888a-f59a1e3f374b X-Openstack-Ironic-Api-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 post /v1/drivers/fake-driverz/vendor_passthru?method=test -POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None -GOT:Response: 500 Internal Server Error +{"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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device/supported +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-4a414c47-3be4-440d-a0a1-74bb934dee13 +Openstack-Request-Id: req-2d7846c9-90d4-4c89-a837-e60b74f5d7f2 X-Openstack-Ironic-Api-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 put /v1/drivers/fake-driverz/vendor_passthru?method=test -PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None -GOT:Response: 500 Internal Server Error +{"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-6c991aa0-2245-4144-9f7c-2e2f96b895cd +Openstack-Request-Id: req-2d7846c9-90d4-4c89-a837-e60b74f5d7f2 X-Openstack-Ironic-Api-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 put /v1/drivers/fake-driverz/vendor_passthru?method=test -PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None -GOT:Response: 500 Internal Server Error +{"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/inject_nmi +PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/inject_nmi {} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-137fd0f4-a582-4f44-834d-61801a8bc548 +Openstack-Request-Id: req-dd7ce5fd-9e7e-4966-a0f3-93aca73748b2 X-Openstack-Ironic-Api-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 put /v1/drivers/fake-driverz/vendor_passthru?method=test -PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None -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-cf1b26ff-4778-43e4-9671-3615f0b79000 +Openstack-Request-Id: req-dd7ce5fd-9e7e-4966-a0f3-93aca73748b2 X-Openstack-Ironic-Api-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/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} -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/management/inject_nmi +PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/inject_nmi {} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-da8a8918-c40c-493a-8c82-539f85e7597f +Openstack-Request-Id: req-ebdeaa7b-a6f3-4c12-bd0a-fb7461274a41 X-Openstack-Ironic-Api-Maximum-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 -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.modules.test_agent_power.AgentPowerTest.test_validate_fails -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_fails ... 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_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.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.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.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.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_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.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_deploy_utils.OtherFunctionTestCase.test_fetch_images -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images ... 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.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.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.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_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_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail ... 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-ebdeaa7b-a6f3-4c12-bd0a-fb7461274a41 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-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/inject_nmi +PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/inject_nmi {} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-0d513b0b-cb11-4590-a419-4bc7de8c0358 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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-996adc37-ea4a-4baa-8d02-cc1a06e1188f +Openstack-Request-Id: req-0d513b0b-cb11-4590-a419-4bc7de8c0358 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/inject_nmi +PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/inject_nmi {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fa5c872a-b27e-49e3-ab18-67b1affcab4a +Openstack-Request-Id: req-02388cf6-01f3-4a65-8cac-3cb622af48d1 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:node:inject_nmi\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fa5c872a-b27e-49e3-ab18-67b1affcab4a +Openstack-Request-Id: req-02388cf6-01f3-4a65-8cac-3cb622af48d1 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 {} +{"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.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.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.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.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler ... 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.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_max_retries +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off_max_retries ... 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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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 GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6074ccf5-503f-469c-a3ec-a013a216fb1c +Openstack-Request-Id: req-2509cefe-270c-4531-923c-a27138371cc4 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"}]} +{"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-6074ccf5-503f-469c-a3ec-a013a216fb1c +Openstack-Request-Id: req-2509cefe-270c-4531-923c-a27138371cc4 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 {} +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b1c33781-d3da-4d91-b9f7-bdc5e8b5a4a4 +Openstack-Request-Id: req-189680a0-a94c-4424-83fc-5c6b96fdd867 X-Openstack-Ironic-Api-Maximum-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-b1c33781-d3da-4d91-b9f7-bdc5e8b5a4a4 +Openstack-Request-Id: req-189680a0-a94c-4424-83fc-5c6b96fdd867 X-Openstack-Ironic-Api-Maximum-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 {} +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-baefc41a-df7c-46df-aff7-5604d0cbb06a +Openstack-Request-Id: req-156d6c20-9308-458b-ad65-1c4e8c2da605 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"}]} +{"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-baefc41a-df7c-46df-aff7-5604d0cbb06a +Openstack-Request-Id: req-156d6c20-9308-458b-ad65-1c4e8c2da605 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 {} +{"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-4b847dcf-fb48-452e-97b6-f7f9878d27bd +Openstack-Request-Id: req-99cc02a3-f612-4038-a163-15568d3e1519 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", "created_at": "2025-02-07T17:33:39.811514+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-4b847dcf-fb48-452e-97b6-f7f9878d27bd +Openstack-Request-Id: req-99cc02a3-f612-4038-a163-15568d3e1519 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.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.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_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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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 -GOT:Response: 200 OK +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:39.811514+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-7134081d-8d68-4fa3-b45f-3e9b33b34da9 +Openstack-Request-Id: req-e9dfa979-a98f-4bab-a373-16e8924d0b11 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-06T10:57:26.154144+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\": \"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-7134081d-8d68-4fa3-b45f-3e9b33b34da9 +Openstack-Request-Id: req-e9dfa979-a98f-4bab-a373-16e8924d0b11 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-06T10:57:26.154144+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\": \"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-05d9e8aa-9137-451d-9de6-409eddedfc83 +Openstack-Request-Id: req-27ed7029-9393-4148-8a52-a1acd4033cb3 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-06T10:57:26.233553+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 +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:40.144579+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.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_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.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.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.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.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.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_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_ramdisk.TestHeartbeat.test_old_api_version +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_version ... 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.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.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.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_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.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps +ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps ... 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.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: 201 Created Content-Type: application/json -Openstack-Request-Id: req-05d9e8aa-9137-451d-9de6-409eddedfc83 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-e9cea4c2-0592-4c99-b0cc-571ae5b7bcf2 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-06T10:57:26.233553+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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:39.117455+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-6c8f5940-d655-40ff-8199-555886f5e549 +Openstack-Request-Id: req-361d992b-1596-4530-b695-515fb6f696c7 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-06T10:57:26.314942+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 +X-Openstack-Ironic-Api-Version: 1.24 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"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-6c8f5940-d655-40ff-8199-555886f5e549 +Openstack-Request-Id: req-6115784f-ff80-4bdc-9c3b-f024b8b7d9f4 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-06T10:57:26.314942+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\": \"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-d8cb58b8-25f3-4330-b222-898330dee7ca +Openstack-Request-Id: req-dde44684-6bf7-493f-8ce3-2ece9d1d34e5 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\": \"Detected change in ramdisk provided \\\"callback_url\\\"\", \"debuginfo\": null}"} +POST: /v1/heartbeat/c3040f41-db77-4178-8bf0-5b40898b35c6 {'callback_url': 'url'} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d8cb58b8-25f3-4330-b222-898330dee7ca +Openstack-Request-Id: req-75f9f29c-8a20-45ab-a30b-6ebd319d52d8 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.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.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.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_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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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_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_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.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.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.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.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.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.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.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_140_ports_post_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_140_ports_post_member ... 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.OtherFunctionTestCase.test_set_failed_state -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state ... 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.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.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.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_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.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.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_ramdisk.RamdiskDeployTestCase.test_deploy -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy ... 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.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.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.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.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.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.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.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.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_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.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.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.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.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.db.test_api.UpdateToLatestVersionsTestCase.test_empty_db -ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_empty_db ... 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.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.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.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.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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node c3040f41-db77-4178-8bf0-5b40898b35c6 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-0ac17480-8e08-4b4b-93dd-fb7c13a3a32e +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-3ac1a98a-a269-4e4e-ab2f-e5ee65fc641f +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-d00cb3a2-55d3-44dd-8f24-5b343ae60c3a +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-08efec8c-baf2-48d3-a2be-e62a6282925a +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-023b7bcb-24b2-46a0-a8b6-d2b3915474ba +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-b7e67d04-7105-4563-82b2-f7bd37246de2 +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-6c1a0c44-db41-4fa4-86b2-eecc12eb27b7 +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 +Content-Type: application/json +Openstack-Request-Id: req-00cd4dae-a994-46a5-b1fe-a7e0393b4ebd +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-373fde16-9ec0-403a-9a18-4807fd5e2ccb +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'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-a603c148-c069-497c-b4fa-dd116e5a6158 +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/848ccc92-30b7-47b3-911e-71b4530fe00f {'callback_url': 'url'} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-f295d21a-549c-4932-92a8-48b4a6c5f607 +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}"} +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'} +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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.api.controllers.v1.test_utils.TestObjectToDict.test_fields -ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_fields ... 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.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 +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.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.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.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.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.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_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.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.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.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.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.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.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_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.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 GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0b64e20b-edd1-4232-9e8b-b6b37b69af67 +Openstack-Request-Id: req-32571e99-6b5f-4d30-b0bb-03062abb5e2f 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-0b64e20b-edd1-4232-9e8b-b6b37b69af67 +Openstack-Request-Id: req-32571e99-6b5f-4d30-b0bb-03062abb5e2f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32661,14 +28953,14 @@ GET: /v1/ports {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-177bd3d5-ccf0-4a8a-ae2c-c4780f8e46e4 +Openstack-Request-Id: req-7b582e5f-a003-458c-9631-edeeff15094e 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-177bd3d5-ccf0-4a8a-ae2c-c4780f8e46e4 +Openstack-Request-Id: req-7b582e5f-a003-458c-9631-edeeff15094e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32677,14 +28969,14 @@ 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-864b115d-9944-4286-bc4e-9be4660f61e8 +Openstack-Request-Id: req-e2fde8fa-ea3d-4803-9cff-4cfb19d793f9 X-Openstack-Ironic-Api-Maximum-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-864b115d-9944-4286-bc4e-9be4660f61e8 +Openstack-Request-Id: req-e2fde8fa-ea3d-4803-9cff-4cfb19d793f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32693,14 +28985,14 @@ 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-3846b7b1-e914-4ae4-8e27-0be69e2ba4a3 +Openstack-Request-Id: req-6aeb8463-59a7-463d-b018-91fa75728b34 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-3846b7b1-e914-4ae4-8e27-0be69e2ba4a3 +Openstack-Request-Id: req-6aeb8463-59a7-463d-b018-91fa75728b34 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32709,14 +29001,14 @@ 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-2ee62dee-1a6c-4b24-b50c-b04dd03ede26 +Openstack-Request-Id: req-884c28fe-39a7-4f53-8397-c80c87ac9f78 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-2ee62dee-1a6c-4b24-b50c-b04dd03ede26 +Openstack-Request-Id: req-884c28fe-39a7-4f53-8397-c80c87ac9f78 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32725,1210 +29017,1007 @@ GET: /v1/ports/detail {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-91e3e3c0-4009-41bd-a582-1a267f19b3df +Openstack-Request-Id: req-083a6407-2d8f-429b-b230-a74c4d32394a 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-06T10:57:27.153649+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": "2025-02-07T17:33:40.391624+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-91e3e3c0-4009-41bd-a582-1a267f19b3df +Openstack-Request-Id: req-083a6407-2d8f-429b-b230-a74c4d32394a 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-06T10:57:27.153649+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": "2025-02-07T17:33:40.391624+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-6972f82f-dae4-4db5-a74f-9cfa8bfb59ec +Openstack-Request-Id: req-9b9b8e32-d199-4178-8fa4-c97519bb3d6a 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-06T10:57:27.317517+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": "2025-02-07T17:33:40.538281+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.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.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.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.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_error -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_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_ipxe.iPXEBootTestCase.test_prepare_ramdisk_uefi -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_uefi ... 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.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.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.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.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.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok ... 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_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.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.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.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.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.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.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.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_steps.NodeVerifyStepsTestCase.test__get_verify_steps_unsorted +ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_unsorted ... 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 +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.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.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_inspector.InspectHardwareTestCase.test_managed_fast_track -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_fast_track ... 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.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.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.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.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_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_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.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.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.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.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.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.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_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.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.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.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_steps.NodeVerifyStepsTestCase.test_execute_verify_step +ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test_execute_verify_step ... 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.conductor.test_utils.GetConfigDriveImageTestCase.test_build_empty +ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_empty ... 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_ipmitool.IPMIToolShellinaboxTestCase.test__exec_stop_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__exec_stop_console ... 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.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.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.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.conductor.test_utils.GetConfigDriveImageTestCase.test_build_populated +ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_populated ... 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_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.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_by_name +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_by_name ... 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.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.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.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.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.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.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.conductor.test_utils.GetConfigDriveImageTestCase.test_no_configdrive +ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_no_configdrive ... 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.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.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-297d8ec8-4f8c-43b7-8aa0-48f133fa8f41 +Openstack-Request-Id: req-be36a626-54db-45a5-aae7-8ba52848b694 X-Openstack-Ironic-Api-Maximum-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-297d8ec8-4f8c-43b7-8aa0-48f133fa8f41 +Openstack-Request-Id: req-be36a626-54db-45a5-aae7-8ba52848b694 X-Openstack-Ironic-Api-Maximum-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 {} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-872a1fd2-bc12-49a9-a1ff-725e200532a0 +Openstack-Request-Id: req-831d84c0-4063-4172-bd7a-1834a12993fa 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"}]} +{"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-872a1fd2-bc12-49a9-a1ff-725e200532a0 +Openstack-Request-Id: req-831d84c0-4063-4172-bd7a-1834a12993fa 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 {} +{"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} +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-185892bb-3d6a-40e7-8461-1b7d3e5ecc1d +Openstack-Request-Id: req-d9222603-c8bf-4bac-ab17-20f43f5597a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"drivers": []} +{"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-185892bb-3d6a-40e7-8461-1b7d3e5ecc1d -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-40ced4a2-5c7a-4b7b-908d-8b16e9518be4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-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-40ced4a2-5c7a-4b7b-908d-8b16e9518be4 +Openstack-Request-Id: req-d9222603-c8bf-4bac-ab17-20f43f5597a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 {} -GOT:Response: 200 OK +{"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} +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-6e1d3229-f34a-460b-8b85-3ceaa0956da5 +Openstack-Request-Id: req-77e285af-5f69-4149-bdcd-7947a2774899 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\": \"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-6e1d3229-f34a-460b-8b85-3ceaa0956da5 +Openstack-Request-Id: req-77e285af-5f69-4149-bdcd-7947a2774899 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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/power +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-0306e7df-cba9-41f3-b095-4b9d62ed85db +Openstack-Request-Id: req-a8cc7626-63a6-4ba4-9de4-8b64970057e6 X-Openstack-Ironic-Api-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 +{"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-0306e7df-cba9-41f3-b095-4b9d62ed85db +Openstack-Request-Id: req-a8cc7626-63a6-4ba4-9de4-8b64970057e6 X-Openstack-Ironic-Api-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: 403 Forbidden +{"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 +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-6843c2d3-5fd2-4105-96f8-e7aecb6addd1 +Openstack-Request-Id: req-538040ab-3329-4c8f-ba99-a31d6aba9aa9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-6843c2d3-5fd2-4105-96f8-e7aecb6addd1 +Openstack-Request-Id: req-538040ab-3329-4c8f-ba99-a31d6aba9aa9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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/power +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-df1271a2-95c1-4ceb-9201-0dd270fbef77 +Openstack-Request-Id: req-16a0e507-4a00-4388-9e15-0db2f7a5dca3 X-Openstack-Ironic-Api-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 +{"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-df1271a2-95c1-4ceb-9201-0dd270fbef77 +Openstack-Request-Id: req-16a0e507-4a00-4388-9e15-0db2f7a5dca3 X-Openstack-Ironic-Api-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 +{"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/power +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-747ac726-6382-4ef6-8404-bd0ad4219d9e +Openstack-Request-Id: req-ce9bb314-71e8-41cd-945a-2725868112eb X-Openstack-Ironic-Api-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-747ac726-6382-4ef6-8404-bd0ad4219d9e +Openstack-Request-Id: req-ce9bb314-71e8-41cd-945a-2725868112eb X-Openstack-Ironic-Api-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.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_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.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.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_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.test_inspector.InspectHardwareTestCase.test_managed_ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_ok ... 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.test_ramdisk.RamdiskDeployTestCase.test_get_clean_steps -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_clean_steps ... 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.api.controllers.v1.test_utils.TestObjectToDict.test_links -ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_links ... 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.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.test_ipxe.iPXEBootTestCase.test_validate_good -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good ... 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.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.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.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.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_inspector.InspectHardwareTestCase.test_unmanaged_error -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_unmanaged_error ... 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.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.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.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.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_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.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.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.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.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_ramdisk.RamdiskDeployTestCase.test_prepare -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare ... 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_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.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.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection ... ok +{"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.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.conductor.test_utils.GetConfigDriveImageTestCase.test_string +ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_string ... 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.conductor.test_periodics.NodePeriodicTestCase.test_simple +ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_simple ... 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.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.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.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.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.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state ... ok +ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_stop +ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_stop ... ok ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6972f82f-dae4-4db5-a74f-9cfa8bfb59ec +Openstack-Request-Id: req-9b9b8e32-d199-4178-8fa4-c97519bb3d6a 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-06T10:57:27.317517+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": "2025-02-07T17:33:40.538281+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-7dd7f517-672d-4656-84cf-fd6e5ebad87e +Openstack-Request-Id: req-9dec29e5-44b8-4fe3-bb96-9f5b28f58824 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-06T10:57:27.424158+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": "2025-02-07T17:33:40.715783+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-7dd7f517-672d-4656-84cf-fd6e5ebad87e +Openstack-Request-Id: req-9dec29e5-44b8-4fe3-bb96-9f5b28f58824 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-06T10:57:27.424158+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": "2025-02-07T17:33:40.715783+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-18c1e577-8be1-4723-9f5a-3b7bd7bfee44 +Openstack-Request-Id: req-24b2e766-2e7d-4ffc-9957-f4421fb88137 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-06T10:57:27.516306+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} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:40.840005+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-18c1e577-8be1-4723-9f5a-3b7bd7bfee44 +Openstack-Request-Id: req-24b2e766-2e7d-4ffc-9957-f4421fb88137 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-06T10:57:27.516306+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} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:40.840005+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-74016e3f-233b-4b61-9d83-99748638c56e +Openstack-Request-Id: req-b31abfef-0c01-4c6f-bf73-ee9e60dbe5fe 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-06T10:57:27.608769+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} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:40.987207+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-74016e3f-233b-4b61-9d83-99748638c56e +Openstack-Request-Id: req-b31abfef-0c01-4c6f-bf73-ee9e60dbe5fe 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-06T10:57:27.608769+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} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:40.987207+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-9cba03d1-5b1a-4edd-ab92-e364ce75b934 +Openstack-Request-Id: req-02f50e68-0c2d-492c-b818-6f3b8959780a 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-06T10:57:27.711520+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_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.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.db.test_api.UpdateToLatestVersionsTestCase.test_one_node -ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_one_node ... ok +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:41.120586+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_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_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.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.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_active -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_active ... 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.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.db.test_api.UpdateToLatestVersionsTestCase.test_version_exists -ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_version_exists ... 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_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.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.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.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.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_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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate ... 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.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_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.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.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.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.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_update_auth_failure_logging_threshold -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_auth_failure_logging_threshold ... 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.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.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.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.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.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.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_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.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.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_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.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.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.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_unrescuing -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_unrescuing ... 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.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.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.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.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_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.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.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.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.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.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_whole_disk_image_missing_root -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image_missing_root ... ok -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-a9e363ab-4ded-42c5-9668-e3014211177f -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 -Content-Type: application/json -Openstack-Request-Id: req-5536c312-813b-4648-9feb-29b58d7fedf1 -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-3390f7b4-3619-4e48-a8b6-668eef1c9cec -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-66cc24e4-151c-4950-9a2e-9bfa3c73f642 -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-2c72a1fa-4c2e-44b5-969c-ec168a003222 -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-bf5d3528-13fa-4f8e-808f-0eccf6029f5e -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 -Content-Type: application/json -Openstack-Request-Id: req-a3416ff3-5914-4891-ac46-0ec40ebae068 -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-2907b22d-f820-40ca-b56b-1f1277d636d6 -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-c305380a-b059-41b9-b09c-6c1fea298512 -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 +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.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_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.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.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_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_port +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_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 +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a716ae1d-d330-4f6f-88f5-bb12f816f7c1 +Openstack-Request-Id: req-27ed7029-9393-4148-8a52-a1acd4033cb3 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}"} -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'}] +X-Openstack-Ironic-Api-Version: 1.80 +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:40.144579+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-c624bcaa-4c3f-4e8e-b46b-63c95387c656 +Openstack-Request-Id: req-0c91347e-55d2-48d1-ac34-09b32fe812e8 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-06T10:57:27.688877+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 +{"ports": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-943a71f7-f834-477a-8696-528fbf99fcd9 +Openstack-Request-Id: req-0c91347e-55d2-48d1-ac34-09b32fe812e8 X-Openstack-Ironic-Api-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 +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f5ecaa09-3a4e-49b3-86ef-3976f7384fab +Openstack-Request-Id: req-8568e00b-abd0-4c57-9e60-c0e3c31f5be7 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-06T10:57:27.806942+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 +{"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-4a6da18c-6a24-474c-9375-50b30bb7fcb1 +Openstack-Request-Id: req-8568e00b-abd0-4c57-9e60-c0e3c31f5be7 X-Openstack-Ironic-Api-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'}] +{"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-f563a537-99e6-4aed-8b77-a722a811b168 -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-06T10:57:27.936287+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-8283afa9-30d2-497c-88e4-257a8b400c2e +Openstack-Request-Id: req-3833c158-c8b1-466e-bafb-20421fde79a0 X-Openstack-Ironic-Api-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'}] -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.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue -ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue ... 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.test_ramdisk.RamdiskDeployTestCase.test_validate -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate ... 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.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_pxe.PXEBootRetryTestCase.test_check_boot_timeouts -ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_timeouts ... 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.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.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.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.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.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.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_ramdisk.RamdiskDeployTestCase.test_validate_calls_boot_validate -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_calls_boot_validate ... 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_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_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.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_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.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.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.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ ... 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.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.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.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_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.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.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.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.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_ramdisk.RamdiskDeployTestCase.test_validate_with_boot_iso -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_with_boot_iso ... ok -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} -GOT:Response: 404 Not Found +{"ports": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-962df36f-6290-4b68-a515-82faebae450a +Openstack-Request-Id: req-3833c158-c8b1-466e-bafb-20421fde79a0 X-Openstack-Ironic-Api-Maximum-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 {} -GOT:Response: 404 Not Found +{"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-3caa9934-5413-40d2-b988-9ee7cf1df787 +Openstack-Request-Id: req-49d34519-3a33-4dcf-ab03-d32c651edee1 X-Openstack-Ironic-Api-Maximum-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 {} -GOT:Response: 404 Not Found +{"ports": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d11b5fc3-8ec7-44c9-92f7-2153300cc527 +Openstack-Request-Id: req-49d34519-3a33-4dcf-ab03-d32c651edee1 X-Openstack-Ironic-Api-Maximum-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 {} +{"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-c369ddbd-0d3c-4e28-af36-c0376c7d5e9f +Openstack-Request-Id: req-276de2f4-4bf2-4681-87f7-0a187b625656 X-Openstack-Ironic-Api-Maximum-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 {} -GOT:Response: 404 Not Found +{"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-a22c8d8c-d8d3-44e4-8255-2b50ab1b43d2 +Openstack-Request-Id: req-276de2f4-4bf2-4681-87f7-0a187b625656 X-Openstack-Ironic-Api-Maximum-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/conductors -GET: /v1/conductors {} -GOT:Response: 500 Internal Server Error +{"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-c0de3b9a-c213-47c6-b2fc-545a3a41d66b +Openstack-Request-Id: req-ba840507-0d71-4657-a349-3cfb7d2436f9 X-Openstack-Ironic-Api-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}"} -API ACL Testing Path get /v1/conductors -GET: /v1/conductors {} -GOT:Response: 500 Internal Server Error +{"ports": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0f3a5dc5-23e8-4838-bacb-0b034c4f49a4 +Openstack-Request-Id: req-ba840507-0d71-4657-a349-3cfb7d2436f9 X-Openstack-Ironic-Api-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}"} -API ACL Testing Path get /v1/conductors -GET: /v1/conductors {} -GOT:Response: 500 Internal Server Error +{"ports": []} +API ACL Testing Path get /v1/volume +GET: /v1/volume {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b464a28a-1018-4d47-9553-a85f5f96c8e3 +Openstack-Request-Id: req-82e4d12b-03f0-4c02-940d-aa6ed51c45ae X-Openstack-Ironic-Api-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}"} -API ACL Testing Path get /v1/conductors/test-conductor-node -GET: /v1/conductors/test-conductor-node {} -GOT:Response: 500 Internal Server Error +{"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-3c73b1a8-f31c-4b90-8f66-c6de7d9f6986 +Openstack-Request-Id: req-82e4d12b-03f0-4c02-940d-aa6ed51c45ae X-Openstack-Ironic-Api-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}"} -API ACL Testing Path get /v1/conductors/test-conductor-node -GET: /v1/conductors/test-conductor-node {} -GOT:Response: 500 Internal Server Error +{"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-0416192b-f64e-4c2b-9f82-153b0ff655b9 +Openstack-Request-Id: req-8b0343bf-36e1-4f15-aa80-a9bcfa4487c3 X-Openstack-Ironic-Api-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}"} -API ACL Testing Path get /v1/conductors/test-conductor-node -GET: /v1/conductors/test-conductor-node {} -GOT:Response: 500 Internal Server Error +{"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-6b83b7ff-b56d-45ff-bff5-47b595e2cb0b +Openstack-Request-Id: req-8b0343bf-36e1-4f15-aa80-a9bcfa4487c3 X-Openstack-Ironic-Api-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}"} -API ACL Testing Path post /v1/allocations -POST: /v1/allocations {'resource_class': 'CUSTOM_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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console ... 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_allow_inspect_abort +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inspect_abort ... 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_task_manager.TaskManagerTestCase.test_init_prepares_fsm +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm ... 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.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console ... 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.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_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_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.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.conductor.test_task_manager.TaskManagerTestCase.test_no_driver +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_no_driver ... 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_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_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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console ... 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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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_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.test_ipxe.iPXEBootTestCase.test_clean_up_instance +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_instance ... 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_task_manager.TaskManagerTestCase.test_spawn_after +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after ... 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.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.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.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.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.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.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.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.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.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.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_task_manager.TaskManagerTestCase.test_spawn_after_link_fails +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7ad1c204-9b29-4c94-94f9-6c0e6f18fa93 +Openstack-Request-Id: req-cadc255b-a543-42f0-b39f-67162c9e8f73 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 post /v1/allocations -POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} -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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-be56adb8-ec77-4db2-8540-d504e5d77fe1 +Openstack-Request-Id: req-cadc255b-a543-42f0-b39f-67162c9e8f73 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: 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/connectors +GET: /v1/volume/connectors {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-78a4498c-a804-496a-b8a9-c47b65bfc2ab +Openstack-Request-Id: req-59b4cd19-310a-4736-b14d-39f7d43bc3b2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: 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-093514a0-ef84-4a23-a526-3de788887191 +Openstack-Request-Id: req-59b4cd19-310a-4736-b14d-39f7d43bc3b2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} -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.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.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.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.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.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.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_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.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.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.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.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_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.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.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_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.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_snmp.SNMPDriverTestCase.test_get_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_off ... 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_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.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.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.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.test_pxe.iPXEBootRetryTestCase.test_check_boot_timeouts -ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_timeouts ... 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.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.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_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.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check -ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check ... ok +{"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 Content-Type: application/json -Openstack-Request-Id: req-986c43e4-c5d4-4ab0-a5f7-3a5bcc6c991c +Openstack-Request-Id: req-f2e6e688-0912-4e2e-a45c-303a62f3b9bc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} +{"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-986c43e4-c5d4-4ab0-a5f7-3a5bcc6c991c +Openstack-Request-Id: req-f2e6e688-0912-4e2e-a45c-303a62f3b9bc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-b330c198-ffab-49f1-9baa-3b179f738699 +Openstack-Request-Id: req-9d3b2d0d-9fb0-49f9-832e-9dadae5b86cf X-Openstack-Ironic-Api-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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b330c198-ffab-49f1-9baa-3b179f738699 +Openstack-Request-Id: req-9d3b2d0d-9fb0-49f9-832e-9dadae5b86cf X-Openstack-Ironic-Api-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"}]} +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-ca4062ef-4247-4dfd-9c11-603626dcd8fc +Location: http://localhost/v1/volume/connectors/55aefdfa-ae9c-406c-9887-8555a9732a03 +Openstack-Request-Id: req-6e08ce82-d321-40fd-899e-bd07860212c6 X-Openstack-Ironic-Api-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": "55aefdfa-ae9c-406c-9887-8555a9732a03", "created_at": "2025-02-07T17:33:41.903582+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/55aefdfa-ae9c-406c-9887-8555a9732a03", "rel": "self"}, {"href": "http://localhost/volume/connectors/55aefdfa-ae9c-406c-9887-8555a9732a03", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +ACL Test GOT Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-ca4062ef-4247-4dfd-9c11-603626dcd8fc +Location: http://localhost/v1/volume/connectors/55aefdfa-ae9c-406c-9887-8555a9732a03 +Openstack-Request-Id: req-6e08ce82-d321-40fd-899e-bd07860212c6 X-Openstack-Ironic-Api-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 {} +{"uuid": "55aefdfa-ae9c-406c-9887-8555a9732a03", "created_at": "2025-02-07T17:33:41.903582+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/55aefdfa-ae9c-406c-9887-8555a9732a03", "rel": "self"}, {"href": "http://localhost/volume/connectors/55aefdfa-ae9c-406c-9887-8555a9732a03", "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-b8656e19-130b-4288-b485-b11bcf375104 +Openstack-Request-Id: req-1d4b2e65-1e27-4209-925e-28b802c2845a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:volume:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b8656e19-130b-4288-b485-b11bcf375104 +Openstack-Request-Id: req-1d4b2e65-1e27-4209-925e-28b802c2845a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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.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 +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-f8d6e704-b20d-4438-af9f-88eb4d3fe251 +Openstack-Request-Id: req-d9b27bb3-020b-409a-b1ec-99c22ad5c36b X-Openstack-Ironic-Api-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-f8d6e704-b20d-4438-af9f-88eb4d3fe251 +Openstack-Request-Id: req-d9b27bb3-020b-409a-b1ec-99c22ad5c36b X-Openstack-Ironic-Api-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/power +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-5c984fd6-8003-4a5f-b30b-c20ddb63633f +Openstack-Request-Id: req-433231b1-3c0a-4e35-9a7c-e110d1cbd248 X-Openstack-Ironic-Api-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-5c984fd6-8003-4a5f-b30b-c20ddb63633f +Openstack-Request-Id: req-433231b1-3c0a-4e35-9a7c-e110d1cbd248 X-Openstack-Ironic-Api-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 {} +{"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 +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-3b8c75ec-a8d3-49fa-ba08-84433a1cead7 +Openstack-Request-Id: req-cebf68d6-830f-4225-a4bb-016ab13dce5f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:set_power_state\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3b8c75ec-a8d3-49fa-ba08-84433a1cead7 +Openstack-Request-Id: req-cebf68d6-830f-4225-a4bb-016ab13dce5f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:set_power_state\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/power +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-50248100-753d-41d6-bfea-f88320ff3e29 +Openstack-Request-Id: req-c5408156-cf01-4032-8760-737d40821e00 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:set_power_state\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-50248100-753d-41d6-bfea-f88320ff3e29 +Openstack-Request-Id: req-c5408156-cf01-4032-8760-737d40821e00 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:node:set_power_state\", \"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-a4145f5f-dace-484d-9370-d16831ca7a4c +Openstack-Request-Id: req-a32594b8-5e6e-4d57-acb1-caecb9868132 X-Openstack-Ironic-Api-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}"} +{"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-a4145f5f-dace-484d-9370-d16831ca7a4c -X-Openstack-Ironic-Api-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.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.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.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.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.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.test_ilo.IloHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces ... 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_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.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.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.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo ... 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.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.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.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.test_snmp.SNMPDriverTestCase.test_get_properties -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties ... 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.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.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.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.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_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.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.test_ilo.IloHardwareTestCase.test_override_with_inspector -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector ... 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.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot ... 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.db.test_chassis.DbChassisTestCase.test_destroy_chassis -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis ... 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.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.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.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.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.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_snmp.SNMPDriverTestCase.test_reboot_error -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error ... ok -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.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.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.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.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.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.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.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.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe ... 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.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.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args ... 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.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.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid ... ok -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-1841fcaf-f658-4425-8d39-f3c271cd4a2c -X-Openstack-Ironic-Api-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-7b58f93b-0b53-407c-bd5f-887f0a5d7070 -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-06T10:57:28.105264+00:00", "updated_at": "2024-01-06T10:57:28.111712+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-524555df-482b-4fb2-8b39-2110ab5d4dea -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-06T10:57:28.105264+00:00", "updated_at": "2024-01-06T10:57:28.111712+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-bea4cd35-d0f1-4ea4-b6f1-166e3eb1389f -X-Openstack-Ironic-Api-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'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-dc9cf9d0-e647-4225-a65e-12fc620606b2 +Openstack-Request-Id: req-a32594b8-5e6e-4d57-acb1-caecb9868132 X-Openstack-Ironic-Api-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 -Content-Type: application/json -Openstack-Request-Id: req-7809bdbd-c313-45dd-bd59-f0e468a30d30 -X-Openstack-Ironic-Api-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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/boot_mode +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-fc94b45a-98dc-4851-bec8-c86c702e8084 +Openstack-Request-Id: req-2c9004df-29a8-413b-93dc-21d4336fdc50 X-Openstack-Ironic-Api-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 +{"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-860a554c-babc-4e26-875d-a7b8fec734a2 +Openstack-Request-Id: req-2c9004df-29a8-413b-93dc-21d4336fdc50 X-Openstack-Ironic-Api-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 +{"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/boot_mode +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-a5233145-a4e1-4e56-9045-44ad34442f0d +Openstack-Request-Id: req-f2801da3-ac49-42c5-8cb6-400e09baf90f 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-06T10:57:28.463093+00:00", "updated_at": "2024-01-06T10:57:28.467613+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 +{"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-85d58a27-7b71-4f0e-b63c-a322a3e27264 +Openstack-Request-Id: req-f2801da3-ac49-42c5-8cb6-400e09baf90f X-Openstack-Ironic-Api-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 +{"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'} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f72dd2e5-305e-482e-aa1c-1974295e5a5a +Openstack-Request-Id: req-26db9c69-6c6a-4fe6-a1f5-aa5b21a4b35d 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-06T10:57:28.593111+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 +{"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-82525959-7781-4835-add6-8e93107aa2db +Openstack-Request-Id: req-26db9c69-6c6a-4fe6-a1f5-aa5b21a4b35d X-Openstack-Ironic-Api-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'}] -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.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.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo ... 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.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.controllers.v1.test_volume_connector.TestPatch.test_replace_singular -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular ... 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/states/boot_mode +PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/boot_mode {'target': 'uefi'} +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.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.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.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.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.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.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.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.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.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.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 ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9cba03d1-5b1a-4edd-ab92-e364ce75b934 +Openstack-Request-Id: req-02f50e68-0c2d-492c-b818-6f3b8959780a 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-06T10:57:27.711520+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} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:41.120586+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-90d69a0c-efd0-4eaa-bf08-3b67e4e3645a +Openstack-Request-Id: req-13b00082-aba3-464e-8515-b3bb83054d7c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-90d69a0c-efd0-4eaa-bf08-3b67e4e3645a +Openstack-Request-Id: req-13b00082-aba3-464e-8515-b3bb83054d7c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33937,14 +30026,14 @@ 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-24f0473e-b241-4985-888a-2e27f4f8cd58 +Openstack-Request-Id: req-3685ce9a-692a-4042-b258-293a821f0ad1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-24f0473e-b241-4985-888a-2e27f4f8cd58 +Openstack-Request-Id: req-3685ce9a-692a-4042-b258-293a821f0ad1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33953,14 +30042,14 @@ 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-6701a430-c6b4-44bb-b1bd-89ae028a5067 +Openstack-Request-Id: req-8d07899f-d86f-4b46-aacf-40bb45db434d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json -Openstack-Request-Id: req-6701a430-c6b4-44bb-b1bd-89ae028a5067 +Openstack-Request-Id: req-8d07899f-d86f-4b46-aacf-40bb45db434d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33969,14 +30058,14 @@ DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-e48720f6-d811-44b0-a97d-fcabb4002481 +Openstack-Request-Id: req-a56e8966-6c3a-47b3-bfa5-7f18549c2155 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-e48720f6-d811-44b0-a97d-fcabb4002481 +Openstack-Request-Id: req-a56e8966-6c3a-47b3-bfa5-7f18549c2155 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33985,14 +30074,14 @@ DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1cad86e8-d40d-4d32-ac91-13dd70238200 +Openstack-Request-Id: req-abec2454-5d96-40af-bcb7-79da2d75fbca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-1cad86e8-d40d-4d32-ac91-13dd70238200 +Openstack-Request-Id: req-abec2454-5d96-40af-bcb7-79da2d75fbca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34001,14 +30090,14 @@ DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-81635140-7ed5-4887-9395-fb5ef3171ff0 +Openstack-Request-Id: req-fd72824c-aa36-4fcc-8e39-2de6adbde1f7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-81635140-7ed5-4887-9395-fb5ef3171ff0 +Openstack-Request-Id: req-fd72824c-aa36-4fcc-8e39-2de6adbde1f7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34017,14 +30106,14 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-531444e8-ad30-40c3-a8ec-5aa1c9c3467a +Openstack-Request-Id: req-dd0c8b97-02fe-46b5-ba13-9d599ab0504b 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-531444e8-ad30-40c3-a8ec-5aa1c9c3467a +Openstack-Request-Id: req-dd0c8b97-02fe-46b5-ba13-9d599ab0504b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34033,183 +30122,174 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} 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.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.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.test_irmc.IRMCHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_default_interfaces ... 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.test_snmp.SNMPDriverTestCase.test_reboot_timeout -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout ... 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.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.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.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.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.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.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.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.SNMPDriverTestCase.test_set_power_state_error -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_error ... 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_snmp.SNMPClientTestCase.test__get_transport -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport ... 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.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_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_ipxe.iPXEBootTestCase.test_get_properties +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_get_properties ... 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_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.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.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables ... 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.TestCheckAllowFields.test_check_allow_clean_verbs +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs ... 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.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.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/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 +/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 " +/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.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.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.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_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.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.test_ipxe.iPXEBootTestCase.test_prepare_instance +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance ... 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.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_base.PassthruDecoratorTestCase.test_passthru_check_func_references -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references ... 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.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.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.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.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid ... 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.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.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.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.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception ... 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.test_base.PassthruDecoratorTestCase.test_passthru_noexception -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception ... 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_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_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.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.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.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_utils.NodeHistoryRecordTestCase.test_record_node_history +ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history ... 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_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_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.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.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.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.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.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.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.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.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.SNMPClientTestCase.test__get_transport_custom_retries -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries ... 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.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.api.test_audit.TestAuditMiddleware.test_enable_audit_request -ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request ... 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.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.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_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.test_base.TestBareDriver.test_class_variables -ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables ... ok -POST: /v1/things/ {'three': 'three', 'four': 'fourrrr', 'five': 'five'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-65570117-824b-46fb-85cc-4539c0a9038a -{"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-0060cb47-b98f-4629-ae26-37466cfd6e2e - -GET: /v1/things/response_content {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-4a72ca00-cd18-4f32-9068-14d800019716 -"nothing" -GET: /v1/things/response_custom_status {} -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Request-Id: req-f1576a79-917f-48a4-a1c4-e7a472bde3e3 -"accepted" -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_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_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.common.test_args.ValidateSchemaTest.test_schema -ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema ... 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.common.test_args.ValidateSchemaTest.test_schema_needs_args -ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_args ... 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.ilo.test_management.IloManagementTestCase.test_validate -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_validate ... 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.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.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.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.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.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.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_utils.NodeHistoryRecordTestCase.test_record_node_history_noop +ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_noop ... 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.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.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.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_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.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.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.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_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_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.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.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.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power ... 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.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_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_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.common.test_cinder.TestCinderClient.test_get_client -ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client ... 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.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.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.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary -ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary ... 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_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.test_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration ... 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.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.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.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.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up +ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up ... 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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-47504c39-b331-48ab-a248-d40e54fcdded +Openstack-Request-Id: req-85a9a17c-b5ea-4866-8f4c-dba28a553401 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-47504c39-b331-48ab-a248-d40e54fcdded +Openstack-Request-Id: req-85a9a17c-b5ea-4866-8f4c-dba28a553401 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34218,14 +30298,14 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-283c9614-ca7d-4a76-a3ad-3044f6345f1c +Openstack-Request-Id: req-598a09e4-e6ac-4b16-b559-ecc48449ad21 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-283c9614-ca7d-4a76-a3ad-3044f6345f1c +Openstack-Request-Id: req-598a09e4-e6ac-4b16-b559-ecc48449ad21 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34234,766 +30314,676 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ca7d081f-5756-4953-880c-7b446e8c6dfb +Openstack-Request-Id: req-dee4c5a6-7392-43e4-a711-5826fbb975bc 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-06T10:57:28.940994+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": "2025-02-07T17:33:42.854077+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-ca7d081f-5756-4953-880c-7b446e8c6dfb +Openstack-Request-Id: req-dee4c5a6-7392-43e4-a711-5826fbb975bc 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-06T10:57:28.940994+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": "2025-02-07T17:33:42.854077+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-78f4f7a6-adfe-42a7-a371-f923bda6b58d +Openstack-Request-Id: req-55a832a9-4fc5-482b-81ab-f3ad15a27f32 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-06T10:57:29.044106+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": "2025-02-07T17:33:43.074582+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-78f4f7a6-adfe-42a7-a371-f923bda6b58d +Openstack-Request-Id: req-55a832a9-4fc5-482b-81ab-f3ad15a27f32 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-06T10:57:29.044106+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": "2025-02-07T17:33:43.074582+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-27e74a61-b18f-4229-a2ab-512fbae26afd +Openstack-Request-Id: req-1db54b51-e261-4004-9539-ea288199812c 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-06T10:57:29.146671+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": "2025-02-07T17:33:43.232722+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.common.test_cinder.TestCinderUtils.test_is_volume_attached -ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached ... 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.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.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.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.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.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function ... 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.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.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.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.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.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.db.test_api.UpdateToLatestVersionsTestCase.test_empty_db +ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_empty_db ... 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.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.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.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.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.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.db.test_api.UpdateToLatestVersionsTestCase.test_max_count_zero +ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_max_count_zero ... 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.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.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.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.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string ... 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.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_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.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.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.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_snmp.SNMPClientTestCase.test_get -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get ... 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.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.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.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.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.TestObject.test__from_db_object_old -ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_old ... 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.objects.test_objects.TestObject.test_as_dict -ironic.tests.unit.objects.test_objects.TestObject.test_as_dict ... 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 -API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru?method=test -GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} +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.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.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.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_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.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.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps ... ok GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-e8cd7d57-c7d9-4a36-a989-e6ae9f3c43d7 +Openstack-Request-Id: req-85ea31ac-8909-462c-ab8c-fd4101b4bb0b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-e8cd7d57-c7d9-4a36-a989-e6ae9f3c43d7 +Openstack-Request-Id: req-85ea31ac-8909-462c-ab8c-fd4101b4bb0b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: 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-acf7d48a-fe2f-4dea-8482-a78f80b20f90 +Openstack-Request-Id: req-8fcaa84d-799b-4b89-9763-708fb586ca6a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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": "2025-02-07T17:33:42.477711+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-acf7d48a-fe2f-4dea-8482-a78f80b20f90 +Openstack-Request-Id: req-8fcaa84d-799b-4b89-9763-708fb586ca6a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:42.477711+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-0a1a544f-8324-462b-bcb8-705c7197f7fe +Openstack-Request-Id: req-3bf9a7f8-35da-4ac6-b138-4fae5e110dba X-Openstack-Ironic-Api-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}"} +{"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-0a1a544f-8324-462b-bcb8-705c7197f7fe +Openstack-Request-Id: req-3bf9a7f8-35da-4ac6-b138-4fae5e110dba X-Openstack-Ironic-Api-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\": \"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-fd1c7b37-77bc-414f-96c6-ba6da23cb8a4 +Openstack-Request-Id: req-ce6ab401-b50c-4742-a12b-8b870e27188c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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": "2025-02-07T17:33:42.847578+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-fd1c7b37-77bc-414f-96c6-ba6da23cb8a4 +Openstack-Request-Id: req-ce6ab401-b50c-4742-a12b-8b870e27188c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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": "2025-02-07T17:33:42.847578+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-bfaf395e-b6b7-413a-8040-eb0e4f0db97c +Openstack-Request-Id: req-1029e55a-df21-4cfa-ba24-89ab5374b082 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-bfaf395e-b6b7-413a-8040-eb0e4f0db97c +Openstack-Request-Id: req-1029e55a-df21-4cfa-ba24-89ab5374b082 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f86e5038-f046-443b-8b80-fce578a96ca1 +Openstack-Request-Id: req-7f95b1c5-c136-4671-8006-c813f45157ed X-Openstack-Ironic-Api-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}"} +{"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-f86e5038-f046-443b-8b80-fce578a96ca1 +Openstack-Request-Id: req-7f95b1c5-c136-4671-8006-c813f45157ed X-Openstack-Ironic-Api-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\": \"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-22ed2b3c-fd26-4896-aa92-061fade88538 +Openstack-Request-Id: req-f454cb8b-b4be-40e9-bf89-d185776da904 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:update\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-22ed2b3c-fd26-4896-aa92-061fade88538 +Openstack-Request-Id: req-f454cb8b-b4be-40e9-bf89-d185776da904 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} +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.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.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_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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_with_fallback +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_with_fallback ... ok +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-57594069-f22a-4d67-8069-a048cb7b4724 +Openstack-Request-Id: req-2b34ffb5-abcf-417e-b512-5eef402087eb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-57594069-f22a-4d67-8069-a048cb7b4724 +Openstack-Request-Id: req-2b34ffb5-abcf-417e-b512-5eef402087eb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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_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.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.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.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.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.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_snmp.SNMPClientTestCase.test_get_err_engine -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine ... 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.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.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.objects.test_objects.TestObject.test_base_attributes -ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes ... 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.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.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.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.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.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.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.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.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.SNMPClientTestCase.test_get_err_transport -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_transport ... 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.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.objects.test_objects.TestObject.test_changed_4 -ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 ... 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.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.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.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.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.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.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.objects.test_objects.TestObject.test_contains -ironic.tests.unit.objects.test_objects.TestObject.test_contains ... 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.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.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.test_snmp.SNMPClientTestCase.test_get_next -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next ... 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.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.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_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.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.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.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.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 -API ACL Testing Path get /v1/allocations -GET: /v1/allocations {} -GOT:Response: 403 Forbidden +{"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/boot_mode +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-a72a5683-d5fc-41f2-aa8d-52250407ba60 +Openstack-Request-Id: req-9ea88bc8-acb0-451d-ad30-2c5fb74f0a2a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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/22c0274d-4ceb-445a-af5e-71a2261f30dd -GET: /v1/allocations/22c0274d-4ceb-445a-af5e-71a2261f30dd {} -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-49094d84-ae49-4e01-8fe9-6c6065416d07 +Openstack-Request-Id: req-9ea88bc8-acb0-451d-ad30-2c5fb74f0a2a X-Openstack-Ironic-Api-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 22c0274d-4ceb-445a-af5e-71a2261f30dd could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/allocations/d2375b66-a301-4daa-aa96-2cad06c0e7d6 -GET: /v1/allocations/d2375b66-a301-4daa-aa96-2cad06c0e7d6 {} -GOT:Response: 404 Not Found +{"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'} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-4ea546e6-537f-4877-a127-3b122c7f2c5b +Openstack-Request-Id: req-261a3f7a-1cad-4247-8d16-c2f8905dc6ea X-Openstack-Ironic-Api-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 d2375b66-a301-4daa-aa96-2cad06c0e7d6 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/allocations/04b7ee46-19fc-4fa8-bc42-5d42d1b93126 -GET: /v1/allocations/04b7ee46-19fc-4fa8-bc42-5d42d1b93126 {} -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-cd286abe-b552-4eef-b4ba-4d709afcb0d0 +Openstack-Request-Id: req-261a3f7a-1cad-4247-8d16-c2f8905dc6ea X-Openstack-Ironic-Api-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 04b7ee46-19fc-4fa8-bc42-5d42d1b93126 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/allocations/0af1396a-97df-4f0b-a79a-bed4a9be54ed -PATCH: /v1/allocations/0af1396a-97df-4f0b-a79a-bed4a9be54ed [{'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 put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/boot_mode +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-13ee209e-564c-4f96-a005-cf58c9086c37 +Openstack-Request-Id: req-183917d1-0c61-4548-9905-70a4bb2106d5 X-Openstack-Ironic-Api-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 0af1396a-97df-4f0b-a79a-bed4a9be54ed could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/allocations/b692597e-bd5f-4cc5-a915-be2e399abc4e -PATCH: /v1/allocations/b692597e-bd5f-4cc5-a915-be2e399abc4e [{'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:node:set_boot_mode\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-81361c2e-4c65-46de-8ba7-d6ff5f1a84d5 +Openstack-Request-Id: req-183917d1-0c61-4548-9905-70a4bb2106d5 X-Openstack-Ironic-Api-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 b692597e-bd5f-4cc5-a915-be2e399abc4e could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/allocations/d12d13c5-ffc1-4c4b-bcb2-d492473c84ee -PATCH: /v1/allocations/d12d13c5-ffc1-4c4b-bcb2-d492473c84ee [{'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:node:set_boot_mode\", \"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'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-17e6e3e5-39cc-463d-9379-954e703f2a24 +Openstack-Request-Id: req-e6c8ff73-ed72-4d06-888c-fcd75bfc4e32 X-Openstack-Ironic-Api-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 d12d13c5-ffc1-4c4b-bcb2-d492473c84ee could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/86cda2a4-17e5-40d7-94bf-28c07a22e5e9 -DELETE: /v1/allocations/86cda2a4-17e5-40d7-94bf-28c07a22e5e9 -GOT:Response: 404 Not Found +{"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-61392d3d-1cf6-480b-8f11-76c04d56d1e0 +Openstack-Request-Id: req-e6c8ff73-ed72-4d06-888c-fcd75bfc4e32 X-Openstack-Ironic-Api-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 86cda2a4-17e5-40d7-94bf-28c07a22e5e9 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/2a70f41c-8bc9-4288-8381-373618694295 -DELETE: /v1/allocations/2a70f41c-8bc9-4288-8381-373618694295 +{"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/boot_mode +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-c2dcb37c-a49d-4522-b38c-9d815e13ffca +Openstack-Request-Id: req-1dcba055-6c3f-49d7-8e3b-03ead849c8d9 X-Openstack-Ironic-Api-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 2a70f41c-8bc9-4288-8381-373618694295 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/afac5f31-20d3-4055-b951-19b7d9b4eca2 -DELETE: /v1/allocations/afac5f31-20d3-4055-b951-19b7d9b4eca2 -GOT:Response: 404 Not Found +{"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-6df9b4ba-4e44-4c25-8844-23b05b12652b +Openstack-Request-Id: req-1dcba055-6c3f-49d7-8e3b-03ead849c8d9 X-Openstack-Ironic-Api-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 afac5f31-20d3-4055-b951-19b7d9b4eca2 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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/secure_boot +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-9bd5eb34-a735-4c9e-aa53-9ca8c74dc332 +Openstack-Request-Id: req-c144075f-3f3e-46f7-aaa3-1c5bbb829f91 X-Openstack-Ironic-Api-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: 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-cae1a9a0-4678-4a1f-9564-da7a470baafc +Openstack-Request-Id: req-c144075f-3f3e-46f7-aaa3-1c5bbb829f91 X-Openstack-Ironic-Api-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: 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/secure_boot +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-b5a4ef78-c123-4157-95ef-4ad73a7bd700 +Openstack-Request-Id: req-32d741cd-b773-4500-a331-4b70cd0b923a X-Openstack-Ironic-Api-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/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation -DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation -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-bf8e0716-fcba-47ff-8c82-e7b3d8d2098e +Openstack-Request-Id: req-32d741cd-b773-4500-a331-4b70cd0b923a X-Openstack-Ironic-Api-Maximum-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 -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.objects.test_objects.TestObject.test_dehydration -ironic.tests.unit.objects.test_objects.TestObject.test_dehydration ... 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.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.test_ibmc.IBMCHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_ibmc.IBMCHardwareTestCase.test_default_interfaces ... 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.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.objects.test_objects.TestObject.test_do_version_changes_for_db -ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db ... 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/states/secure_boot +PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/secure_boot {'target': 'true'} +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.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.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.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.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.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.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.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.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.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.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.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.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.db.test_api.UpdateToLatestVersionsTestCase.test_one_node +ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_one_node ... 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.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.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk ... 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.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.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.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_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.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.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.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.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.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.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.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.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_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.redfish.test_power.RedfishPowerTestCase.test_get_properties -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties ... 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.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.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.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.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.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.objects.test_objects.TestObject.test_get -ironic.tests.unit.objects.test_objects.TestObject.test_get ... 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.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.objects.test_objects.TestObject.test_get_changes -ironic.tests.unit.objects.test_objects.TestObject.test_get_changes ... 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.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.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_power.IloPowerTestCase.test_get_properties -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_properties ... 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.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_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.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.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.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.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_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.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.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.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.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_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.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.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.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.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.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.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.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.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.SNMPClientTestCase.test_get_next_err_transport -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport ... 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.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.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.common.test_utils.GenericUtilsTestCase.test__get_hash_object -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object ... 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.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt ... 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.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_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.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.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.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.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.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.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_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.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.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.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.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.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_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.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.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.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.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.objects.test_objects.TestObject.test_get_updates -ironic.tests.unit.objects.test_objects.TestObject.test_get_updates ... 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.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.objects.test_objects.TestObject.test_hydration -ironic.tests.unit.objects.test_objects.TestObject.test_hydration ... 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.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_snmp.SNMPClientTestCase.test_set -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set ... 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.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_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.test_xclarity.XClarityHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_xclarity.XClarityHardwareTestCase.test_default_interfaces ... 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.common.test_utils.GenericUtilsTestCase.test_is_fips_enabled -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_fips_enabled ... 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.objects.test_objects.TestObject.test_load -ironic.tests.unit.objects.test_objects.TestObject.test_load ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification ... ok -GOT:Response: 200 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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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 +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-5ca1b725-c87b-4b87-9ea1-063fefc1a2e9 +Openstack-Request-Id: req-a8c7e557-5dd9-4b4f-bad1-700fe2e5cfe1 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": "2024-01-06T10:57:29.362147+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}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-5ca1b725-c87b-4b87-9ea1-063fefc1a2e9 +Openstack-Request-Id: req-a8c7e557-5dd9-4b4f-bad1-700fe2e5cfe1 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": "2024-01-06T10:57:29.362147+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 {} +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f4c1b1d9-8068-42c1-84d0-bf892859987f +Openstack-Request-Id: req-b15895ed-7c3e-4d12-a269-dc5c20843eec X-Openstack-Ironic-Api-Maximum-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 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-f4c1b1d9-8068-42c1-84d0-bf892859987f +Openstack-Request-Id: req-b15895ed-7c3e-4d12-a269-dc5c20843eec X-Openstack-Ironic-Api-Maximum-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 {} -GOT:Response: 200 OK +{"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-1291f892-3550-4117-9602-f3166fed6d5e +Openstack-Request-Id: req-05081c3b-62e6-4cbd-a410-673e098b20d3 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": "2024-01-06T10:57:29.550806+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:volume:delete\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1291f892-3550-4117-9602-f3166fed6d5e +Openstack-Request-Id: req-05081c3b-62e6-4cbd-a410-673e098b20d3 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": "2024-01-06T10:57:29.550806+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 {} +{"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-ea5f365e-69af-41f9-b351-517321ec3259 +Openstack-Request-Id: req-fe8f81bd-843a-41cd-bc90-95f13d63457d 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-06T10:57:29.644257+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"}]}} +{"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-ea5f365e-69af-41f9-b351-517321ec3259 +Openstack-Request-Id: req-fe8f81bd-843a-41cd-bc90-95f13d63457d 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-06T10:57:29.644257+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 +{"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-56995ef8-1ac8-4dc0-9d87-319ed1da6fe0 +Openstack-Request-Id: req-fffd3c20-36ec-4d45-9f09-138ff38f0d5c X-Openstack-Ironic-Api-Maximum-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:list\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-56995ef8-1ac8-4dc0-9d87-319ed1da6fe0 +Openstack-Request-Id: req-fffd3c20-36ec-4d45-9f09-138ff38f0d5c X-Openstack-Ironic-Api-Maximum-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 {} +{"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-fafa491e-e8d7-405e-983e-17e2c5515de0 +Openstack-Request-Id: req-f48e4971-9aa1-4869-8c69-260da7321629 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-06T10:57:29.831987+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"}]}} +{"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-fafa491e-e8d7-405e-983e-17e2c5515de0 +Openstack-Request-Id: req-f48e4971-9aa1-4869-8c69-260da7321629 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-06T10:57:29.831987+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.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.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.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.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.objects.test_objects.TestObject.test_load_in_base -ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base ... 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.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.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_269_deploy_templates_post_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_269_deploy_templates_post_observer ... 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.test_snmp.SNMPClientTestCase.test_set_err_engine -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine ... 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.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.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.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.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.ilo.test_power.IloPowerTestCase.test_validate -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate ... 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.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.common.test_utils.GenericUtilsTestCase.test_safe_rstrip -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip ... 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.objects.test_objects.TestObject.test_obj_fields -ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields ... 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.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.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.objects.test_objects.TestObject.test_object_inheritance -ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance ... 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.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.objects.test_notification.TestNotificationBase.test_mask_secrets_has_secrets -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_has_secrets ... 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': 4, 'volume_id': 'test-id'} +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/volume/targets/0841ae62-9b87-45da-9cb4-655853824cf9 +Openstack-Request-Id: req-8b9a1dc7-6da8-4c54-95e0-9e0e3b592fcc +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "0841ae62-9b87-45da-9cb4-655853824cf9", "created_at": "2025-02-07T17:33:44.841802+00:00", "updated_at": null, "boot_index": 4, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/0841ae62-9b87-45da-9cb4-655853824cf9", "rel": "self"}, {"href": "http://localhost/volume/targets/0841ae62-9b87-45da-9cb4-655853824cf9", "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 +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_prepare_ramdisk_ipxe_swift +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift ... 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.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.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_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.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.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.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 ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-27e74a61-b18f-4229-a2ab-512fbae26afd +Openstack-Request-Id: req-1db54b51-e261-4004-9539-ea288199812c 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-06T10:57:29.146671+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": "2025-02-07T17:33:43.232722+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-7ce95a10-794f-48a6-a781-8741e189a3e2 +Openstack-Request-Id: req-154d5913-7af9-4066-83c5-6f0342d30cb9 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-7ce95a10-794f-48a6-a781-8741e189a3e2 +Openstack-Request-Id: req-154d5913-7af9-4066-83c5-6f0342d30cb9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35002,14 +30992,14 @@ GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ff491922-220c-440d-bd1a-a9a048f3796f +Openstack-Request-Id: req-d225a843-eb1e-4a5c-b65c-53358779ecdd 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-ff491922-220c-440d-bd1a-a9a048f3796f +Openstack-Request-Id: req-d225a843-eb1e-4a5c-b65c-53358779ecdd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35018,14 +31008,14 @@ GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c6389d0e-5a23-416e-94ee-00bb146afb24 +Openstack-Request-Id: req-9d11bc86-f39f-4bad-99e6-3a81fb898a95 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-c6389d0e-5a23-416e-94ee-00bb146afb24 +Openstack-Request-Id: req-9d11bc86-f39f-4bad-99e6-3a81fb898a95 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35034,14 +31024,14 @@ GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-938757ab-63bd-42cc-afb2-29c134ae8749 +Openstack-Request-Id: req-d6776b7f-1d0e-433a-bc7e-ed0ac04f8705 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-938757ab-63bd-42cc-afb2-29c134ae8749 +Openstack-Request-Id: req-d6776b7f-1d0e-433a-bc7e-ed0ac04f8705 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35050,14 +31040,14 @@ GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c684a827-8c1a-4aa2-b7ce-12756a1ff903 +Openstack-Request-Id: req-29757e45-6225-40e6-9d12-c73614f18b46 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-c684a827-8c1a-4aa2-b7ce-12756a1ff903 +Openstack-Request-Id: req-29757e45-6225-40e6-9d12-c73614f18b46 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35066,14 +31056,14 @@ GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-94d43d0b-f31e-4f8c-8e50-60ec34725bf1 +Openstack-Request-Id: req-17a3ddbb-b085-48fe-8c51-27225326b5ac 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-94d43d0b-f31e-4f8c-8e50-60ec34725bf1 +Openstack-Request-Id: req-17a3ddbb-b085-48fe-8c51-27225326b5ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35082,14 +31072,14 @@ GET: /v1/volume {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4fb86822-ed99-4491-a0bc-03c449a08ee6 +Openstack-Request-Id: req-61e823d2-0d7c-4fa8-9fd8-1c62f700cd83 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-4fb86822-ed99-4491-a0bc-03c449a08ee6 +Openstack-Request-Id: req-61e823d2-0d7c-4fa8-9fd8-1c62f700cd83 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35098,14 +31088,14 @@ GET: /v1/volume {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-719bc8c6-def8-4b37-9479-ece5668baf6b +Openstack-Request-Id: req-83ad7865-3e43-44cb-b39e-4e238b25712b 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-719bc8c6-def8-4b37-9479-ece5668baf6b +Openstack-Request-Id: req-83ad7865-3e43-44cb-b39e-4e238b25712b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35114,716 +31104,713 @@ 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.objects.test_objects.TestObject.test_object_property -ironic.tests.unit.objects.test_objects.TestObject.test_object_property ... 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.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.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.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_objects.TestObject.test_object_property_type_error -ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error ... 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.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.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.objects.test_objects.TestObject.test_orphaned_object -ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object ... 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.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.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.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.objects.test_objects.TestObject.test_refresh_object -ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object ... 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.objects.test_objects.TestObject.test_static_result -ironic.tests.unit.objects.test_objects.TestObject.test_static_result ... 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.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.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.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.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.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.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.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.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.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.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.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.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.common.test_fsm.FSMTest.test__validate_target_state +ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state ... 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.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_notification.TestNotificationBase.test_no_emit_notifs_disabled -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled ... 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.conductor.test_manager.BootDeviceTestCase.test_get_boot_device -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device ... 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.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.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.objects.test_notification.TestNotificationBase.test_populate_schema -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema ... 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.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.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.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.test_drac.IDRACHardwareTestCase.test_override_no_vendor -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_no_vendor ... 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_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.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.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.common.test_fsm.FSMTest.test_initialize +ironic.tests.unit.common.test_fsm.FSMTest.test_initialize ... 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.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.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.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.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.common.test_fsm.FSMTest.test_is_stable +ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable ... 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.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_fsm.FSMTest.test_is_stable_invalid_state +ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state ... 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.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.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.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.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.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_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates ... 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.BootDeviceTestCase.test_get_boot_device_validate_fail -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_validate_fail ... 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.redfish.test_power.RedfishPowerTestCase.test_validate -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_validate ... 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.objects.test_portgroup.TestPortgroupObject.test_create -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_create ... 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_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_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.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 -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.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.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.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.conductor.test_manager.BootDeviceTestCase.test_set_boot_device -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device ... 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_portgroup.TestPortgroupObject.test_get_by_id -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id ... 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 -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_portgroup.TestPortgroupObject.test_get_by_name -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name ... 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.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.test_drac.IDRACHardwareTestCase.test_override_with_raid -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid ... 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.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.redfish.test_raid.RedfishRAIDTestCase.test__get_storage_controller -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_storage_controller ... 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_objects.TestObject.test_supports_version -ironic.tests.unit.objects.test_objects.TestObject.test_supports_version ... ok -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list ... 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.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__max_volume_size_bytes_raid0 -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid0 ... 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.objects.test_objects.TestObject.test_unknown_objtype -ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype ... 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 -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.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_session -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_session ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_updates -ironic.tests.unit.objects.test_objects.TestObject.test_updates ... 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.objects.test_portgroup.TestPortgroupObject.test_payload_schemas -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas ... 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 -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_objects.TestObject.test_with_alternate_context -ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context ... ok -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_refresh -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_refresh ... 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.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 -GOT:{'node': {'uuid': 'afae5eaa-bee5-4f76-9966-7148778361ea', '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/afae5eaa-bee5-4f76-9966-7148778361ea', 'rel': 'self'}, {'href': 'http://localhost/nodes/afae5eaa-bee5-4f76-9966-7148778361ea', '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=27243fe4-ed2e-4b75-ab88-61e66bd34e8e {} -GOT:{'node': {'uuid': '27243fe4-ed2e-4b75-ab88-61e66bd34e8e', '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/27243fe4-ed2e-4b75-ab88-61e66bd34e8e', 'rel': 'self'}, {'href': 'http://localhost/nodes/27243fe4-ed2e-4b75-ab88-61e66bd34e8e', '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-d1efb9cf-e73b-4d78-b063-4880dc7e7cb3 -X-Openstack-Ironic-Api-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-2a69a0e5-7ae6-4ec7-b988-aaeabef68b98 -X-Openstack-Ironic-Api-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-56af1e3f-4256-489c-9574-55526cd90bf7 -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=4476b041-0ccc-425e-b2da-6b307b17430f {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-eab9d70c-8643-439d-9a44-f50072ee7c6a -X-Openstack-Ironic-Api-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}"} -{'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-087eb036-c374-4753-8212-89d9612a7ad1', '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/tmps5r33us4/tmp1vnypvrv/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/deploy_kernel'), 'deploy_ramdisk': ('deploy_ramdisk', '/tmp/tmps5r33us4/tmp1vnypvrv/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/deploy_ramdisk')} -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save ... 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.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.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.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.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.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh ... 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.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 -GOT:Response: 200 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.common.test_fsm.FSMTest.test_process_event +ironic.tests.unit.common.test_fsm.FSMTest.test_process_event ... 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.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.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.common.test_fsm.FSMTest.test_target_state_stable +ironic.tests.unit.common.test_fsm.FSMTest.test_target_state_stable ... 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.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.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.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_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy ... ok +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-6cff3cc9-c4ba-4cf8-b9df-f160f90b5c79 +Openstack-Request-Id: req-91ca7469-8a9a-4b5b-9f82-062cfdc874a0 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\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-6cff3cc9-c4ba-4cf8-b9df-f160f90b5c79 +Openstack-Request-Id: req-91ca7469-8a9a-4b5b-9f82-062cfdc874a0 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 +{"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'} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-fa867e69-797d-403c-a825-3f01e6b8662d +Openstack-Request-Id: req-8970cb62-525b-4be4-93d3-a1e160aeab7d 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-fa867e69-797d-403c-a825-3f01e6b8662d +Openstack-Request-Id: req-8970cb62-525b-4be4-93d3-a1e160aeab7d 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 +{"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/secure_boot +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-f5da5a7c-4701-4549-8ef3-ccb67cdb474f +Openstack-Request-Id: req-d2fab2fb-a37f-47b7-9ea1-849154db7e98 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-f5da5a7c-4701-4549-8ef3-ccb67cdb474f +Openstack-Request-Id: req-d2fab2fb-a37f-47b7-9ea1-849154db7e98 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 +{"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'} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-2fd4ee19-33e9-4eb1-ae5d-f8dd77506a64 +Openstack-Request-Id: req-d020de20-b911-4828-b01b-5a94ca65fd53 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-2fd4ee19-33e9-4eb1-ae5d-f8dd77506a64 +Openstack-Request-Id: req-d020de20-b911-4828-b01b-5a94ca65fd53 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 put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/secure_boot +PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/secure_boot {'target': 'true'} +GOT:Response: 403 Forbidden Content-Type: application/json -Location: http://localhost/v1/volume/connectors/3a5e5410-ca81-4b40-ad34-0a2676a3ed03 -Openstack-Request-Id: req-503d18b8-b386-4517-bf1b-5b72fd4f6952 +Openstack-Request-Id: req-22391f29-26ec-4ff4-b59d-ccb3bb2edbd5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "3a5e5410-ca81-4b40-ad34-0a2676a3ed03", "created_at": "2024-01-06T10:57:30.357301+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/3a5e5410-ca81-4b40-ad34-0a2676a3ed03", "rel": "self"}, {"href": "http://localhost/volume/connectors/3a5e5410-ca81-4b40-ad34-0a2676a3ed03", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -ACL Test GOT Response: 201 Created +{"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 -Location: http://localhost/v1/volume/connectors/3a5e5410-ca81-4b40-ad34-0a2676a3ed03 -Openstack-Request-Id: req-503d18b8-b386-4517-bf1b-5b72fd4f6952 +Openstack-Request-Id: req-22391f29-26ec-4ff4-b59d-ccb3bb2edbd5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "3a5e5410-ca81-4b40-ad34-0a2676a3ed03", "created_at": "2024-01-06T10:57:30.357301+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/3a5e5410-ca81-4b40-ad34-0a2676a3ed03", "rel": "self"}, {"href": "http://localhost/volume/connectors/3a5e5410-ca81-4b40-ad34-0a2676a3ed03", "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\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"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'} +GOT:Response: 403 Forbidden Content-Type: application/json -Location: http://localhost/v1/volume/connectors/f4762ec5-1c91-4f78-a25c-b3a1abc3a91e -Openstack-Request-Id: req-62fb8f6b-e938-4f33-8628-6b0cd90c7707 +Openstack-Request-Id: req-1dd92a37-d4aa-4293-9efe-ba1b39ccfa0f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "f4762ec5-1c91-4f78-a25c-b3a1abc3a91e", "created_at": "2024-01-06T10:57:30.438774+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/f4762ec5-1c91-4f78-a25c-b3a1abc3a91e", "rel": "self"}, {"href": "http://localhost/volume/connectors/f4762ec5-1c91-4f78-a25c-b3a1abc3a91e", "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 -GOT:Response: 200 OK +{"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-45c81136-8efd-449e-8f76-7e9089267e6a +Openstack-Request-Id: req-1dd92a37-d4aa-4293-9efe-ba1b39ccfa0f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "f9911d1f-7491-45f9-8c1b-22db855dc05f", "created_at": "2024-01-06T10:56:47.191532+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f9911d1f-7491-45f9-8c1b-22db855dc05f", "rel": "self"}, {"href": "http://localhost/deploy_templates/f9911d1f-7491-45f9-8c1b-22db855dc05f", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -PATCH: /v1/deploy_templates/7e3d07e9-4cc1-4e81-9336-fe19f9962983 [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] -GOT:Response: 400 Bad Request +{"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/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-20cbf97b-a6b2-4d58-80ab-8a291d7aed8d +Openstack-Request-Id: req-d325fe73-af12-42d8-a130-9999f7029327 X-Openstack-Ironic-Api-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/5b90e8ca-b34d-442d-8b82-72a6e2710682 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] -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-741ffce0-1f0f-4207-9218-c6e22bc0de4d +Openstack-Request-Id: req-d325fe73-af12-42d8-a130-9999f7029327 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5b90e8ca-b34d-442d-8b82-72a6e2710682", "created_at": "2024-01-06T10:56:47.301509+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/5b90e8ca-b34d-442d-8b82-72a6e2710682", "rel": "self"}, {"href": "http://localhost/deploy_templates/5b90e8ca-b34d-442d-8b82-72a6e2710682", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -PATCH: /v1/deploy_templates/eed39ae4-2c92-4acc-bfaa-6527502cab84 [{'path': '/name', 'value': 'HW_CPU_X86_VMX', '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 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-aaaae1cb-f9b2-4a51-8ad1-ba43e9c40740 +Openstack-Request-Id: req-a627d976-ed74-4d32-a772-1cda5fb702ba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "eed39ae4-2c92-4acc-bfaa-6527502cab84", "created_at": "2024-01-06T10:56:47.350587+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/eed39ae4-2c92-4acc-bfaa-6527502cab84", "rel": "self"}, {"href": "http://localhost/deploy_templates/eed39ae4-2c92-4acc-bfaa-6527502cab84", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -PATCH: /v1/deploy_templates/d4df7db9-ba61-4420-8f79-300da6c0b83d [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] -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-8de9bd2e-3ecd-4161-948a-274a56bb6e06 +Openstack-Request-Id: req-a627d976-ed74-4d32-a772-1cda5fb702ba X-Openstack-Ironic-Api-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 d4df7db9-ba61-4420-8f79-300da6c0b83d 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-a63264a7-3384-4f97-9839-0faf62047db2 -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}"} -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_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.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_redfish_raid -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_raid ... ok +{"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.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.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.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.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_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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-67dff801-dcfb-4339-919f-faf3469f6437 +Openstack-Request-Id: req-878da5c1-c2aa-4f56-9110-a14d3af3f222 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}]} +{"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-67dff801-dcfb-4339-919f-faf3469f6437 -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-42943bee-40dc-48e7-962c-b62825ab4f10 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-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-42943bee-40dc-48e7-962c-b62825ab4f10 +Openstack-Request-Id: req-878da5c1-c2aa-4f56-9110-a14d3af3f222 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 {} +{"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-01330dc2-79d9-4dc0-8f08-a0ffb728ac39 +Openstack-Request-Id: req-1444dd99-2a54-4b44-bb09-35f1a60937d0 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}]} +{"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-01330dc2-79d9-4dc0-8f08-a0ffb728ac39 +Openstack-Request-Id: req-1444dd99-2a54-4b44-bb09-35f1a60937d0 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 {} +{"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-4859afcf-a368-433b-bef0-5df8dece8d42 +Openstack-Request-Id: req-e0e0a4a0-e989-4951-b0ad-d2e623cbe153 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": "2024-01-06T10:57:30.154627+00:00", "updated_at": "2024-01-06T10:57:30.155806+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} +{"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-4859afcf-a368-433b-bef0-5df8dece8d42 -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": "2024-01-06T10:57:30.154627+00:00", "updated_at": "2024-01-06T10:57:30.155806+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 -Content-Type: application/json -Openstack-Request-Id: req-887bb31f-274c-4a50-9060-761347f26c4c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-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-887bb31f-274c-4a50-9060-761347f26c4c +Openstack-Request-Id: req-e0e0a4a0-e989-4951-b0ad-d2e623cbe153 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 {} +{"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-9ca734eb-31ee-4540-87cb-cc5093c5010e +Openstack-Request-Id: req-133855dd-43ac-48bc-8f4f-2ec7d5d0e8b6 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": "2024-01-06T10:57:30.294081+00:00", "updated_at": "2024-01-06T10:57:30.295222+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} +{"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-9ca734eb-31ee-4540-87cb-cc5093c5010e +Openstack-Request-Id: req-133855dd-43ac-48bc-8f4f-2ec7d5d0e8b6 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": "2024-01-06T10:57:30.294081+00:00", "updated_at": "2024-01-06T10:57:30.295222+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-9c713498-4a42-407c-9ee9-4426b4ae514b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"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-9c713498-4a42-407c-9ee9-4426b4ae514b +Location: http://localhost/v1/volume/connectors/4fd38d48-6c52-4459-9681-12496591c531 +Openstack-Request-Id: req-6316a612-a66e-4633-99cd-a52ffdb334ce X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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: 403 Forbidden +{"uuid": "4fd38d48-6c52-4459-9681-12496591c531", "created_at": "2025-02-07T17:33:45.699888+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/4fd38d48-6c52-4459-9681-12496591c531", "rel": "self"}, {"href": "http://localhost/volume/connectors/4fd38d48-6c52-4459-9681-12496591c531", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +ACL Test GOT Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-b90b6324-18bc-4f7e-a4a3-aa732381598b +Location: http://localhost/v1/volume/connectors/4fd38d48-6c52-4459-9681-12496591c531 +Openstack-Request-Id: req-6316a612-a66e-4633-99cd-a52ffdb334ce X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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 -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_virtual_media_boot -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_virtual_media_boot ... 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.ConcurrentActionLimitTestCase.test_concurrent_action_limit_deploy -ironic.tests.unit.conductor.test_manager.ConcurrentActionLimitTestCase.test_concurrent_action_limit_deploy ... 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.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_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.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.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.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.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.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 -GOT:Response: 404 Not Found +{"uuid": "4fd38d48-6c52-4459-9681-12496591c531", "created_at": "2025-02-07T17:33:45.699888+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/4fd38d48-6c52-4459-9681-12496591c531", "rel": "self"}, {"href": "http://localhost/volume/connectors/4fd38d48-6c52-4459-9681-12496591c531", "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-0de5fedd-c352-4fec-b51e-d2fec36cb1c0 +Location: http://localhost/v1/volume/connectors/eb4ac875-68fe-4ea7-b13e-396bc084c1b5 +Openstack-Request-Id: req-b7cee4e0-078c-4fb7-85bf-26757e95c0c0 X-Openstack-Ironic-Api-Maximum-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 -GOT:Response: 404 Not Found +{"uuid": "eb4ac875-68fe-4ea7-b13e-396bc084c1b5", "created_at": "2025-02-07T17:33:45.850023+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/eb4ac875-68fe-4ea7-b13e-396bc084c1b5", "rel": "self"}, {"href": "http://localhost/volume/connectors/eb4ac875-68fe-4ea7-b13e-396bc084c1b5", "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.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.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_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.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.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.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.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach ... 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_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.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.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.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_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.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.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.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.irmc.test_power.IRMCPowerTestCase.test_validate +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate ... ok +ACL Test GOT Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-26321cca-fb59-4478-856a-8e311743b758 +Location: http://localhost/v1/volume/targets/0841ae62-9b87-45da-9cb4-655853824cf9 +Openstack-Request-Id: req-8b9a1dc7-6da8-4c54-95e0-9e0e3b592fcc X-Openstack-Ironic-Api-Maximum-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 post /v1/deploy_templates -POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} -GOT:Response: 500 Internal Server Error +{"uuid": "0841ae62-9b87-45da-9cb4-655853824cf9", "created_at": "2025-02-07T17:33:44.841802+00:00", "updated_at": null, "boot_index": 4, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/0841ae62-9b87-45da-9cb4-655853824cf9", "rel": "self"}, {"href": "http://localhost/volume/targets/0841ae62-9b87-45da-9cb4-655853824cf9", "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-b012ca78-9e44-4368-943f-f9c98c7a942a +Openstack-Request-Id: req-d9ddc670-7c18-41fe-b6a2-a295ba731c4f X-Openstack-Ironic-Api-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 post /v1/deploy_templates -POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} -GOT:Response: 500 Internal Server Error +{"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-d26991d6-fb89-49fb-badc-82cd828a6500 +Openstack-Request-Id: req-d9ddc670-7c18-41fe-b6a2-a295ba731c4f X-Openstack-Ironic-Api-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 post /v1/deploy_templates -POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} -GOT:Response: 500 Internal Server Error +{"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-c781ce96-823b-4769-a8ba-d39cb0110895 +Openstack-Request-Id: req-0372c367-9714-47d1-b409-d51420cf16fc X-Openstack-Ironic-Api-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/deploy_templates -GET: /v1/deploy_templates {} -GOT:Response: 500 Internal Server Error +{"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-73614e05-c24b-4b66-9b16-faad479831f0 +Openstack-Request-Id: req-0372c367-9714-47d1-b409-d51420cf16fc X-Openstack-Ironic-Api-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 -GET: /v1/deploy_templates {} -GOT:Response: 500 Internal Server Error +{"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-dd3609d4-5084-4851-b0af-28c2e77f359b +Openstack-Request-Id: req-d7473cb3-c365-4122-bed0-6c7341f218af X-Openstack-Ironic-Api-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 -GET: /v1/deploy_templates {} -GOT:Response: 500 Internal Server Error +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:45.305959+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-ec50b700-6384-40d6-ac6d-ce91a87cde06 +Openstack-Request-Id: req-d7473cb3-c365-4122-bed0-6c7341f218af X-Openstack-Ironic-Api-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/e1af0cb4-5b2c-4804-8b7d-ae94b159cbf8 -GET: /v1/deploy_templates/e1af0cb4-5b2c-4804-8b7d-ae94b159cbf8 {} -GOT:Response: 500 Internal Server Error +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:45.305959+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-a16e45ac-be80-47e9-8137-384d44562915 +Openstack-Request-Id: req-022c02b2-7947-4b53-8200-a82b231f66a3 X-Openstack-Ironic-Api-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/649d7fa2-58a9-4952-85ad-cec407b283ce -GET: /v1/deploy_templates/649d7fa2-58a9-4952-85ad-cec407b283ce {} -GOT:Response: 500 Internal Server Error +{"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-99207f99-5188-47ad-8581-8d85026aa8c7 +Openstack-Request-Id: req-022c02b2-7947-4b53-8200-a82b231f66a3 X-Openstack-Ironic-Api-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/098b64d0-5c29-461c-9733-cc976ff8d09f -GET: /v1/deploy_templates/098b64d0-5c29-461c-9733-cc976ff8d09f {} -GOT:Response: 500 Internal Server Error +{"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-921780aa-ad6f-4588-a513-571550ae7a35 +Openstack-Request-Id: req-d892ec12-c0dc-4a84-bfe0-440876dc1b0e X-Openstack-Ironic-Api-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/48bed77f-4f11-4f80-9aad-f2455187f09c -PATCH: /v1/deploy_templates/48bed77f-4f11-4f80-9aad-f2455187f09c [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] -GOT:Response: 500 Internal Server Error +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:45.658055+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-721b4f0d-3a82-47fb-8553-4e8947065195 +Openstack-Request-Id: req-d892ec12-c0dc-4a84-bfe0-440876dc1b0e X-Openstack-Ironic-Api-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/1d8b5870-1575-4340-92a8-ddb7177a69dc -PATCH: /v1/deploy_templates/1d8b5870-1575-4340-92a8-ddb7177a69dc [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] -GOT:Response: 500 Internal Server Error +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:45.658055+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-10db9111-981c-4f71-bd5c-8e7051af16dd +Openstack-Request-Id: req-dd957c14-699a-417a-b17e-73c6be9455e5 X-Openstack-Ironic-Api-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}"} -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 +{"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.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.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.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_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.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.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_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.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.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.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.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.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_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.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.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.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.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.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.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.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.db.test_nodes.DbNodeTestCase.test_check_node_list +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list ... 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.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.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.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.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.irmc.test_power.IRMCPowerTestCase.test_validate_fail +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail ... 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.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.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.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.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.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.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.db.test_nodes.DbNodeTestCase.test_create_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node ... 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.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.common.test_neutron.TestValidateNetwork.test_by_name +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name ... 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.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.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.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_1a -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1a ... 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_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.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.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.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.common.test_neutron.TestValidateNetwork.test_by_uuid +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid ... 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.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.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.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.common.test_neutron.TestValidateNetwork.test_duplicate +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate ... 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.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_neutron.TestValidateNetwork.test_failure +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure ... 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.common.test_neutron.TestValidateNetwork.test_not_found +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found ... 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.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.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.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.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.common.test_policy.PolicyInCodeTestCase.test_creds_01 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_01 ... 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.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_power.RedfishPowerTestCase.test_reboot_fail +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail ... 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.db.test_nodes.DbNodeTestCase.test_destroy_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node ... 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.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.common.test_policy.PolicyInCodeTestCase.test_creds_03 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_03 ... 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.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.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.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.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.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.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.common.test_policy.PolicyInCodeTestCase.test_creds_04 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_04 ... 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.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.common.test_policy.PolicyInCodeTestCase.test_creds_05 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_05 ... 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.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.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 ACL Test GOT Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/volume/connectors/f4762ec5-1c91-4f78-a25c-b3a1abc3a91e -Openstack-Request-Id: req-62fb8f6b-e938-4f33-8628-6b0cd90c7707 +Location: http://localhost/v1/volume/connectors/eb4ac875-68fe-4ea7-b13e-396bc084c1b5 +Openstack-Request-Id: req-b7cee4e0-078c-4fb7-85bf-26757e95c0c0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "f4762ec5-1c91-4f78-a25c-b3a1abc3a91e", "created_at": "2024-01-06T10:57:30.438774+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/f4762ec5-1c91-4f78-a25c-b3a1abc3a91e", "rel": "self"}, {"href": "http://localhost/volume/connectors/f4762ec5-1c91-4f78-a25c-b3a1abc3a91e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +{"uuid": "eb4ac875-68fe-4ea7-b13e-396bc084c1b5", "created_at": "2025-02-07T17:33:45.850023+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/eb4ac875-68fe-4ea7-b13e-396bc084c1b5", "rel": "self"}, {"href": "http://localhost/volume/connectors/eb4ac875-68fe-4ea7-b13e-396bc084c1b5", "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-c627609b-6393-4520-a08f-addb98e4aa75 +Openstack-Request-Id: req-43bae828-d299-4867-abcc-0502d9bb376f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-c627609b-6393-4520-a08f-addb98e4aa75 +Openstack-Request-Id: req-43bae828-d299-4867-abcc-0502d9bb376f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35832,62 +31819,62 @@ GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4449fb51-3036-48e0-a11d-7b43fe3385bb +Openstack-Request-Id: req-4b660d14-505a-4b35-9050-4aee37693745 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-06T10:57:30.590217+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": "2025-02-07T17:33:46.249121+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-4449fb51-3036-48e0-a11d-7b43fe3385bb +Openstack-Request-Id: req-4b660d14-505a-4b35-9050-4aee37693745 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-06T10:57:30.590217+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": "2025-02-07T17:33:46.249121+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-15b1841b-1e5c-434a-ae76-3d038346647e +Openstack-Request-Id: req-7f8447c4-3e02-44ee-bb72-7b519fad701f 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-06T10:57:30.665345+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": "2025-02-07T17:33:46.459751+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-15b1841b-1e5c-434a-ae76-3d038346647e +Openstack-Request-Id: req-7f8447c4-3e02-44ee-bb72-7b519fad701f 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-06T10:57:30.665345+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": "2025-02-07T17:33:46.459751+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-4bbad62a-f1ea-42a0-9e8a-2f613292ea58 +Openstack-Request-Id: req-5f043f8c-5d21-4933-a1ed-bda25b186d5b 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-06T10:57:30.746474+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": "2025-02-07T17:33:46.678520+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-4bbad62a-f1ea-42a0-9e8a-2f613292ea58 +Openstack-Request-Id: req-5f043f8c-5d21-4933-a1ed-bda25b186d5b 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-06T10:57:30.746474+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": "2025-02-07T17:33:46.678520+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-6536a692-baab-40fa-a92b-a97240cb79bf +Openstack-Request-Id: req-79d61e3e-ef85-4f81-87d3-ea4e28031145 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-6536a692-baab-40fa-a92b-a97240cb79bf +Openstack-Request-Id: req-79d61e3e-ef85-4f81-87d3-ea4e28031145 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35896,530 +31883,607 @@ 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-f877c1cc-9a16-4779-a8e4-8edfec0c8317 +Openstack-Request-Id: req-9504f709-fb0f-4b0f-b24c-31310fd006b2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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_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.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.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.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.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.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.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_history.TestNodeHistoryObject.test_create -ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_create ... 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.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_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.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.objects.test_node_history.TestNodeHistoryObject.test_destroy -ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_destroy ... 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.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.objects.test_node_history.TestNodeHistoryObject.test_get -ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get ... ok -ACL Test GOT Response: 403 Forbidden +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.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.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.common.test_policy.PolicyInCodeTestCase.test_creds_06 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_06 ... 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 +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b90b6324-18bc-4f7e-a4a3-aa732381598b +Openstack-Request-Id: req-a46091c8-19e7-43f9-a9d1-f7831dbe3517 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-449e9d06-7702-4d3b-b5f0-e0a8626cca2f +Openstack-Request-Id: req-a46091c8-19e7-43f9-a9d1-f7831dbe3517 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": "c69d72db-57d3-4dbe-94df-4e26fb2941ab", "created_at": "2024-01-06T10:57:30.584255+00:00", "updated_at": "2024-01-06T10:57:30.595976+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/c69d72db-57d3-4dbe-94df-4e26fb2941ab", "rel": "self"}, {"href": "http://localhost/allocations/c69d72db-57d3-4dbe-94df-4e26fb2941ab", "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}"} +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-449e9d06-7702-4d3b-b5f0-e0a8626cca2f +Openstack-Request-Id: req-96ee6f0f-5b8c-41dd-ad2d-0058080b433e 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": "c69d72db-57d3-4dbe-94df-4e26fb2941ab", "created_at": "2024-01-06T10:57:30.584255+00:00", "updated_at": "2024-01-06T10:57:30.595976+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/c69d72db-57d3-4dbe-94df-4e26fb2941ab", "rel": "self"}, {"href": "http://localhost/allocations/c69d72db-57d3-4dbe-94df-4e26fb2941ab", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} -API ACL Testing Path get /v1/allocations -GET: /v1/allocations {} -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-c78b023c-c929-4c1f-a543-e4e108480a62 +Openstack-Request-Id: req-96ee6f0f-5b8c-41dd-ad2d-0058080b433e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} -ACL Test 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-c78b023c-c929-4c1f-a543-e4e108480a62 +Openstack-Request-Id: req-4072ad20-d113-49b4-8f03-f0fbe4ab8d1c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-7dc4539a-5cd5-4a2b-899b-c76ac4ad7089 +Openstack-Request-Id: req-4072ad20-d113-49b4-8f03-f0fbe4ab8d1c 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": "d7a32a9a-52ed-4b38-b06a-0d8d585beab8", "created_at": "2024-01-06T10:57:30.743067+00:00", "updated_at": "2024-01-06T10:57:30.752086+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/d7a32a9a-52ed-4b38-b06a-0d8d585beab8", "rel": "self"}, {"href": "http://localhost/allocations/d7a32a9a-52ed-4b38-b06a-0d8d585beab8", "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}"} +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-7dc4539a-5cd5-4a2b-899b-c76ac4ad7089 +Openstack-Request-Id: req-d61e4568-fde2-402c-b17d-8cadff9fa2ef 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": "d7a32a9a-52ed-4b38-b06a-0d8d585beab8", "created_at": "2024-01-06T10:57:30.743067+00:00", "updated_at": "2024-01-06T10:57:30.752086+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/d7a32a9a-52ed-4b38-b06a-0d8d585beab8", "rel": "self"}, {"href": "http://localhost/allocations/d7a32a9a-52ed-4b38-b06a-0d8d585beab8", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} -API ACL Testing Path get /v1/allocations/5b16b58f-2778-4e90-8928-150d7a8fc5b3 -GET: /v1/allocations/5b16b58f-2778-4e90-8928-150d7a8fc5b3 {} -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-d92c5a6b-4c96-4dec-a8be-64545a6653cc +Openstack-Request-Id: req-d61e4568-fde2-402c-b17d-8cadff9fa2ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5b16b58f-2778-4e90-8928-150d7a8fc5b3", "created_at": "2024-01-06T10:57:30.831533+00:00", "updated_at": "2024-01-06T10:57:30.840489+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/5b16b58f-2778-4e90-8928-150d7a8fc5b3", "rel": "self"}, {"href": "http://localhost/allocations/5b16b58f-2778-4e90-8928-150d7a8fc5b3", "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}"} +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-676f446e-7392-4d42-9ecb-bb13085d9658 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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-d92c5a6b-4c96-4dec-a8be-64545a6653cc +Openstack-Request-Id: req-676f446e-7392-4d42-9ecb-bb13085d9658 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5b16b58f-2778-4e90-8928-150d7a8fc5b3", "created_at": "2024-01-06T10:57:30.831533+00:00", "updated_at": "2024-01-06T10:57:30.840489+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/5b16b58f-2778-4e90-8928-150d7a8fc5b3", "rel": "self"}, {"href": "http://localhost/allocations/5b16b58f-2778-4e90-8928-150d7a8fc5b3", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -API ACL Testing Path get /v1/allocations/d9eb3d2b-7576-478b-bc0b-9c592b803425 -GET: /v1/allocations/d9eb3d2b-7576-478b-bc0b-9c592b803425 {} +{"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-f8952ede-2758-401d-b692-c99319a627cf +Openstack-Request-Id: req-b3c70d20-c2b0-4015-8c65-409f9958195d X-Openstack-Ironic-Api-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 d9eb3d2b-7576-478b-bc0b-9c592b803425 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-f8952ede-2758-401d-b692-c99319a627cf +Openstack-Request-Id: req-b3c70d20-c2b0-4015-8c65-409f9958195d X-Openstack-Ironic-Api-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 d9eb3d2b-7576-478b-bc0b-9c592b803425 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/allocations/568a1ff1-f18e-42c2-970f-efd23341d71f -GET: /v1/allocations/568a1ff1-f18e-42c2-970f-efd23341d71f {} -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.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.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.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.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.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.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.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.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.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.objects.test_node_history.TestNodeHistoryObject.test_list -ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list ... 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.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.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_284_chassis_post_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_284_chassis_post_observer ... 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.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.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.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.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.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.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.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.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.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.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.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.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.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.objects.test_volume_connector.TestVolumeConnectorObject.test_create -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_create ... 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.objects.test_volume_connector.TestVolumeConnectorObject.test_destroy -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_destroy ... 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.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.objects.test_volume_connector.TestVolumeConnectorObject.test_get -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get ... 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.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.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.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.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.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.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.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.objects.test_volume_connector.TestVolumeConnectorObject.test_list -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list ... 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.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_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.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.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.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.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_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.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.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.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh ... 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.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.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_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.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_volume_connector.TestVolumeConnectorObject.test_save_after_refresh -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh ... 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_agent.TestCustomAgentDeploy.test_clean_up -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_clean_up ... 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 -[NodeHistory(conductor='fake-mini',created_at=2024-01-06T10:56:50Z,event='three',event_type='UNKNOWN',id=3,node_id=10,severity='INFO',updated_at=None,user=None,uuid=4899b3af-351a-4470-806d-c3c352f926b4), NodeHistory(conductor='fake-mini',created_at=2024-01-06T10:56:50Z,event='two',event_type='UNKNOWN',id=5,node_id=11,severity='INFO',updated_at=None,user=None,uuid=f7ed0b26-40ac-4d22-8676-263252065e42), NodeHistory(conductor='fake-mini',created_at=2024-01-06T10:56:50Z,event='three',event_type='UNKNOWN',id=6,node_id=11,severity='INFO',updated_at=None,user=None,uuid=43428bc2-45ec-46be-a2ef-08e085a05b19), NodeHistory(conductor='fake-mini',created_at=2024-01-06T10:56:50Z,event='two',event_type='UNKNOWN',id=8,node_id=12,severity='INFO',updated_at=None,user=None,uuid=c1e81ff5-1bdc-4563-929f-f20ba65f2448), NodeHistory(conductor='fake-mini',created_at=2024-01-06T10:56:50Z,event='three',event_type='UNKNOWN',id=9,node_id=12,severity='INFO',updated_at=None,user=None,uuid=cd50cd21-881e-40bf-b03c-62fec45a1c33), NodeHistory(conductor='fake-mini',created_at=2024-01-06T10:56:50Z,event='final',event_type='UNKNOWN',id=10,node_id=10,severity='INFO',updated_at=None,user=None,uuid=34c24697-dade-46fb-989f-a134886aa46f)] -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 -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-29a29a27-cf8d-429a-ad27-edbdb3c9c0a0 +Openstack-Request-Id: req-6f4c539c-863c-43e0-a579-bff8d194e9f2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "568a1ff1-f18e-42c2-970f-efd23341d71f", "created_at": "2024-01-06T10:57:30.987712+00:00", "updated_at": "2024-01-06T10:57:30.997488+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/568a1ff1-f18e-42c2-970f-efd23341d71f", "rel": "self"}, {"href": "http://localhost/allocations/568a1ff1-f18e-42c2-970f-efd23341d71f", "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-29a29a27-cf8d-429a-ad27-edbdb3c9c0a0 +Openstack-Request-Id: req-6f4c539c-863c-43e0-a579-bff8d194e9f2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "568a1ff1-f18e-42c2-970f-efd23341d71f", "created_at": "2024-01-06T10:57:30.987712+00:00", "updated_at": "2024-01-06T10:57:30.997488+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/568a1ff1-f18e-42c2-970f-efd23341d71f", "rel": "self"}, {"href": "http://localhost/allocations/568a1ff1-f18e-42c2-970f-efd23341d71f", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -API ACL Testing Path patch /v1/allocations/11607739-6f01-47a5-a24a-c8c911120b53 -PATCH: /v1/allocations/11607739-6f01-47a5-a24a-c8c911120b53 [{'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 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-95304be7-e35e-4e1b-bfed-646fa54ab53c +Openstack-Request-Id: req-814de795-a9cd-444b-b476-81a7e39fe3f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "11607739-6f01-47a5-a24a-c8c911120b53", "created_at": "2024-01-06T10:57:31.064348+00:00", "updated_at": "2024-01-06T10:57:31.114961+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/11607739-6f01-47a5-a24a-c8c911120b53", "rel": "self"}, {"href": "http://localhost/allocations/11607739-6f01-47a5-a24a-c8c911120b53", "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-814de795-a9cd-444b-b476-81a7e39fe3f0 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-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.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.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.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_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.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.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_policy.PolicyInCodeTestCase.test_creds_07 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_07 ... 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.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.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.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.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.common.test_policy.PolicyInCodeTestCase.test_creds_08 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_08 ... 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 +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-95304be7-e35e-4e1b-bfed-646fa54ab53c +Openstack-Request-Id: req-dd957c14-699a-417a-b17e-73c6be9455e5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "11607739-6f01-47a5-a24a-c8c911120b53", "created_at": "2024-01-06T10:57:31.064348+00:00", "updated_at": "2024-01-06T10:57:31.114961+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/11607739-6f01-47a5-a24a-c8c911120b53", "rel": "self"}, {"href": "http://localhost/allocations/11607739-6f01-47a5-a24a-c8c911120b53", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -API ACL Testing Path patch /v1/allocations/ea862b12-616e-4e58-91f3-adc6bcfd7a05 -PATCH: /v1/allocations/ea862b12-616e-4e58-91f3-adc6bcfd7a05 [{'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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5cfde748-d5ba-4af1-ac95-1291fc800e10 +Openstack-Request-Id: req-3d8a5f41-6b2e-4575-ad13-480f168562c3 X-Openstack-Ironic-Api-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 ea862b12-616e-4e58-91f3-adc6bcfd7a05 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-5cfde748-d5ba-4af1-ac95-1291fc800e10 +Openstack-Request-Id: req-3d8a5f41-6b2e-4575-ad13-480f168562c3 X-Openstack-Ironic-Api-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 ea862b12-616e-4e58-91f3-adc6bcfd7a05 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/allocations/0acbac32-5906-4878-ae79-aa6398a5f2d2 -PATCH: /v1/allocations/0acbac32-5906-4878-ae79-aa6398a5f2d2 [{'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: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2512b706-5e74-4f51-a51f-8030d5f64bbf +Openstack-Request-Id: req-fce04514-c96c-4d9d-ae40-efb8f2be5169 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:volume:update\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2512b706-5e74-4f51-a51f-8030d5f64bbf +Openstack-Request-Id: req-fce04514-c96c-4d9d-ae40-efb8f2be5169 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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/e3fa24c5-aae5-4aa9-9396-3d80fe2f8b25 -DELETE: /v1/allocations/e3fa24c5-aae5-4aa9-9396-3d80fe2f8b25 +{"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-31373ebd-1035-4be2-a51b-a0b35055af04 +Openstack-Request-Id: req-f2897013-2aea-4c3b-bae2-8875b6264776 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-31373ebd-1035-4be2-a51b-a0b35055af04 +Openstack-Request-Id: req-f2897013-2aea-4c3b-bae2-8875b6264776 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/85330b0a-6e12-4296-ab8a-05e87f3a2e41 -DELETE: /v1/allocations/85330b0a-6e12-4296-ab8a-05e87f3a2e41 +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-a1c58753-7663-4d8e-a193-8992b1d66613 +Openstack-Request-Id: req-34a2adf2-33a1-4e0f-9afb-c935adada4da X-Openstack-Ironic-Api-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 85330b0a-6e12-4296-ab8a-05e87f3a2e41 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-a1c58753-7663-4d8e-a193-8992b1d66613 +Openstack-Request-Id: req-34a2adf2-33a1-4e0f-9afb-c935adada4da X-Openstack-Ironic-Api-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 85330b0a-6e12-4296-ab8a-05e87f3a2e41 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/ed5ed47b-2633-4752-b940-718dd09aac3a -DELETE: /v1/allocations/ed5ed47b-2633-4752-b940-718dd09aac3a +{"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-977e4901-35d1-4da5-94e4-0887d38e5a55 +Openstack-Request-Id: req-b90ccdbc-5b18-49af-8479-d3b2924b3480 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy ... 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.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.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.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_protected -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected ... 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.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.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.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.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.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_get_physical_disks -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_get_physical_disks ... ok -API ACL Testing Path patch /v1/deploy_templates/2ec0f353-6dd3-405e-adbc-8ba1d3e5727c -PATCH: /v1/deploy_templates/2ec0f353-6dd3-405e-adbc-8ba1d3e5727c [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] -GOT:Response: 500 Internal Server Error +{"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-a5ed6618-b4d1-4838-847d-177457b5561e +Openstack-Request-Id: req-b90ccdbc-5b18-49af-8479-d3b2924b3480 X-Openstack-Ironic-Api-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/e0136315-03a1-422c-a1ce-02221f574c07 -DELETE: /v1/deploy_templates/e0136315-03a1-422c-a1ce-02221f574c07 -GOT:Response: 500 Internal Server Error +{"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 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-eb2b065f-89f4-4466-8cbd-1e61aa391cf1 +Openstack-Request-Id: req-7d060563-25e3-478a-954d-13bab2204e50 X-Openstack-Ironic-Api-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/30942c66-8705-4bb7-9123-573e963f78ee -DELETE: /v1/deploy_templates/30942c66-8705-4bb7-9123-573e963f78ee -GOT:Response: 500 Internal Server Error +{"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-9f996803-733c-48af-9e04-cb738ce5e471 +Openstack-Request-Id: req-7d060563-25e3-478a-954d-13bab2204e50 X-Openstack-Ironic-Api-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/d89bb578-73d9-4039-bfa5-4cdf75463f13 -DELETE: /v1/deploy_templates/d89bb578-73d9-4039-bfa5-4cdf75463f13 -GOT:Response: 500 Internal Server Error +{"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: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f91329b1-4a2e-4b5a-abdf-d5dfe9e8de6e +Openstack-Request-Id: req-d12fab68-fede-4ef7-afb5-8b011e603639 X-Openstack-Ironic-Api-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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} +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.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.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.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.common.test_policy.PolicyInCodeTestCase.test_creds_09 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_09 ... 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.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.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.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed ... 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.common.test_policy.PolicyInCodeTestCase.test_creds_10 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_10 ... 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.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.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.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.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good ... 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.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.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.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.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.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.common.test_policy.PolicyInCodeTestCase.test_creds_12 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_12 ... 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_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.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.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.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.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.test_nodes.DbNodeTestCase.test_get_node_by_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid ... 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.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.common.test_policy.PolicyInCodeTestCase.test_creds_13 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_13 ... 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.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.redfish.test_power.RedfishPowerTestCase.test_validate +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.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.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_ipxe.iPXEBootTestCase.test_validate_inspection +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list ... 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.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.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.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.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.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.common.test_policy.PolicyInCodeTestCase.test_creds_15 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_15 ... 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.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_deploy_utils.InstanceImageCacheTestCase.test_without_master_path +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_without_master_path ... 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.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.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate ... 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.common.test_policy.PolicyInCodeTestCase.test_creds_16 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_16 ... 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.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_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.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.common.test_policy.PolicyInCodeTestCase.test_creds_17 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_17 ... 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.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.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.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.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.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.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.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_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.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.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.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.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.network.test_noop.NoopInterfaceTestCase.test_vif_detach +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_detach ... 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.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.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.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.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_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_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.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.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.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.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.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_ipxe.iPXEBootTestCase.test_validate_with_boot_iso +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso ... 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.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.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.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.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.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.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.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.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.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.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.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.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_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.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits ... ok +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fec1dd72-3894-4d90-a476-1cc560599336 +Openstack-Request-Id: req-d12fab68-fede-4ef7-afb5-8b011e603639 X-Openstack-Ironic-Api-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 +{"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-3869a543-6e2e-486f-ac91-3ab944f66ceb +Openstack-Request-Id: req-abc136f3-454f-4693-8c16-31b623cb1883 X-Openstack-Ironic-Api-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 +{"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-ca7c9d1d-9654-4476-8cf2-5d8c79657fab +Openstack-Request-Id: req-abc136f3-454f-4693-8c16-31b623cb1883 X-Openstack-Ironic-Api-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 +{"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-986c1fe0-d691-47fb-8e90-3705fd83fe6e +Openstack-Request-Id: req-baaa2d60-b214-41b5-afc0-8673e1a038eb X-Openstack-Ironic-Api-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 +{"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-c73bb63f-6525-4af0-a839-88af56ecd927 +Openstack-Request-Id: req-baaa2d60-b214-41b5-afc0-8673e1a038eb X-Openstack-Ironic-Api-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 +{"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-9d937115-86ae-4870-ad00-e900a070aa18 +Openstack-Request-Id: req-c47fad23-f041-4217-aa9a-f00d8b77d9ac X-Openstack-Ironic-Api-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 +{"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-a6f34b9b-798f-48ba-a88c-55959c7da4ae +Openstack-Request-Id: req-c47fad23-f041-4217-aa9a-f00d8b77d9ac X-Openstack-Ironic-Api-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 +{"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-29127806-031c-4ccc-b42c-3c391bb06b9d +Openstack-Request-Id: req-286637b9-5310-41b4-8acd-6d250e69e289 X-Openstack-Ironic-Api-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 +{"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-308d1e45-a950-415b-876d-096d5c98f2ea +Openstack-Request-Id: req-286637b9-5310-41b4-8acd-6d250e69e289 X-Openstack-Ironic-Api-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 {} -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.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.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_raid.RedfishRAIDTestCase.test_loading_error -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_loading_error ... 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.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.test_agent.TestCustomAgentDeploy.test_get_properties -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_get_properties ... 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 +{"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-a2d892ff-41d5-4123-886d-d74a7026f160 +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-a2d892ff-41d5-4123-886d-d74a7026f160 +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.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.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.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.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.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.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.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_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 +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 ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f877c1cc-9a16-4779-a8e4-8edfec0c8317 +Openstack-Request-Id: req-9504f709-fb0f-4b0f-b24c-31310fd006b2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -36428,14 +32492,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-1521dbce-a13b-4d67-a24c-3b11110c93b2 +Openstack-Request-Id: req-391bda20-bdc0-42c3-84e3-714484807258 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-1521dbce-a13b-4d67-a24c-3b11110c93b2 +Openstack-Request-Id: req-391bda20-bdc0-42c3-84e3-714484807258 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -36444,14 +32508,14 @@ DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-a7d170ae-6a22-44fb-9b41-73bfb2871ed7 +Openstack-Request-Id: req-164524bc-18eb-4f1f-8d69-d0e19e96f5b4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-a7d170ae-6a22-44fb-9b41-73bfb2871ed7 +Openstack-Request-Id: req-164524bc-18eb-4f1f-8d69-d0e19e96f5b4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -36460,14 +32524,14 @@ DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-35f05131-082e-49a6-87dd-7e70b75c2004 +Openstack-Request-Id: req-939c5e3a-150c-4b28-871e-a6a7d8fa7b25 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-35f05131-082e-49a6-87dd-7e70b75c2004 +Openstack-Request-Id: req-939c5e3a-150c-4b28-871e-a6a7d8fa7b25 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -36476,14 +32540,14 @@ DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1488481b-2e7b-454f-b65b-b6c592a9fa60 +Openstack-Request-Id: req-aab49bca-845d-4dd3-8b74-37128be9bd89 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-1488481b-2e7b-454f-b65b-b6c592a9fa60 +Openstack-Request-Id: req-aab49bca-845d-4dd3-8b74-37128be9bd89 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -36492,14 +32556,14 @@ GET: /v1/volume/targets {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-93814399-393b-4fb2-a290-acccdf74412b +Openstack-Request-Id: req-db76c709-bf90-425a-8f23-f987eb5e2e84 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-93814399-393b-4fb2-a290-acccdf74412b +Openstack-Request-Id: req-db76c709-bf90-425a-8f23-f987eb5e2e84 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -36508,14 +32572,14 @@ GET: /v1/volume/targets {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-699c27fe-ec70-4188-81c6-ce1c2ddc3bd3 +Openstack-Request-Id: req-456b5e86-176c-420e-bd90-6f232ea4e800 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-699c27fe-ec70-4188-81c6-ce1c2ddc3bd3 +Openstack-Request-Id: req-456b5e86-176c-420e-bd90-6f232ea4e800 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -36524,191 +32588,341 @@ GET: /v1/volume/targets {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-47335ebd-f142-4f1b-aa7e-dc1ac969b096 +Openstack-Request-Id: req-c5f61eb5-417a-4f96-9102-889afeffc136 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.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.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved ... 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.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare ... 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.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.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_volume_targets.DbVolumeTargetTestCase.test_create_volume_target +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target ... 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.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.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.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.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_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.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.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.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.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.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.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_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.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.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.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.test_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target ... 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.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.conductor.test_manager.ConsoleTestCase.test_get_console +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_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.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.test_agent.TestCustomAgentDeploy.test_prepare_fast_track -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare_fast_track ... 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.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.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.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_agent.TestCustomAgentDeploy.test_validate -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_validate ... 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.test_agent.TestAgentDeploy.test_clean_up -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up ... ok -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.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_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.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_agent.TestAgentDeploy.test_deploy -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy ... 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_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.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.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.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.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.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.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.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_image_cache.TestFetchCleanup.test__fetch +ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch ... 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.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.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_image_cache.TestFetchCleanup.test__fetch_already_raw +ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_already_raw ... 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.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.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_manager.ConsoleTestCase.test_get_console_disabled +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled ... 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_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_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.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.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.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.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.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state ... ok +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-c8e43821-2057-4747-8445-2e7ed7dd0908 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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-977e4901-35d1-4da5-94e4-0887d38e5a55 +Openstack-Request-Id: req-c8e43821-2057-4747-8445-2e7ed7dd0908 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-9cdba9db-46b5-499b-8d90-731c744fe7b9 +Openstack-Request-Id: req-9d135df9-5efb-4593-990b-054b977dead3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "9d23bd5f-94de-4afa-bc6a-b8eb7370f244", "created_at": "2024-01-06T10:57:31.488142+00:00", "updated_at": "2024-01-06T10:57:31.497057+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/9d23bd5f-94de-4afa-bc6a-b8eb7370f244", "rel": "self"}, {"href": "http://localhost/allocations/9d23bd5f-94de-4afa-bc6a-b8eb7370f244", "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:node:set_raid_state\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9cdba9db-46b5-499b-8d90-731c744fe7b9 +Openstack-Request-Id: req-9d135df9-5efb-4593-990b-054b977dead3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "9d23bd5f-94de-4afa-bc6a-b8eb7370f244", "created_at": "2024-01-06T10:57:31.488142+00:00", "updated_at": "2024-01-06T10:57:31.497057+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/9d23bd5f-94de-4afa-bc6a-b8eb7370f244", "rel": "self"}, {"href": "http://localhost/allocations/9d23bd5f-94de-4afa-bc6a-b8eb7370f244", "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 +{"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-f9294595-0816-48c7-843c-faeb167d6c00 +Openstack-Request-Id: req-5a4be2a3-a52a-4435-adb8-b1da5873087f X-Openstack-Ironic-Api-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f9294595-0816-48c7-843c-faeb167d6c00 +Openstack-Request-Id: req-5a4be2a3-a52a-4435-adb8-b1da5873087f X-Openstack-Ironic-Api-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 +{"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}]}} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-dc7cf5c0-5484-471e-898d-a95c4b8f7632 +Openstack-Request-Id: req-9a1d5665-2d5f-441f-b264-10162a7e1fa3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "2991707d-0c77-488e-ac86-a5e2e30e27b3", "created_at": "2024-01-06T10:57:31.631511+00:00", "updated_at": "2024-01-06T10:57:31.640145+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/2991707d-0c77-488e-ac86-a5e2e30e27b3", "rel": "self"}, {"href": "http://localhost/allocations/2991707d-0c77-488e-ac86-a5e2e30e27b3", "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:node:set_raid_state\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-dc7cf5c0-5484-471e-898d-a95c4b8f7632 +Openstack-Request-Id: req-9a1d5665-2d5f-441f-b264-10162a7e1fa3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "2991707d-0c77-488e-ac86-a5e2e30e27b3", "created_at": "2024-01-06T10:57:31.631511+00:00", "updated_at": "2024-01-06T10:57:31.640145+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/2991707d-0c77-488e-ac86-a5e2e30e27b3", "rel": "self"}, {"href": "http://localhost/allocations/2991707d-0c77-488e-ac86-a5e2e30e27b3", "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 +{"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-0f1601ac-8a19-4c0d-8a70-0c8d523dec23 +X-Openstack-Ironic-Api-Maximum-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-0f1601ac-8a19-4c0d-8a70-0c8d523dec23 +X-Openstack-Ironic-Api-Maximum-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-6670312b-8bfd-4cef-8cf6-3466d4a6a7fd +Openstack-Request-Id: req-a0d154a1-16b1-4c16-872f-b670c3fbbe60 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-6670312b-8bfd-4cef-8cf6-3466d4a6a7fd +Openstack-Request-Id: req-a0d154a1-16b1-4c16-872f-b670c3fbbe60 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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: 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-3ff3fbf9-3950-4596-a99e-03af65528bb7 +Openstack-Request-Id: req-cd48f2a8-1d92-41ff-976c-dc9b2f50e26f X-Openstack-Ironic-Api-Maximum-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-3ff3fbf9-3950-4596-a99e-03af65528bb7 +Openstack-Request-Id: req-cd48f2a8-1d92-41ff-976c-dc9b2f50e26f X-Openstack-Ironic-Api-Maximum-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\": \"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-199642ff-cc77-4ce5-9773-5e104049884f +Openstack-Request-Id: req-fb5577d1-b1f2-4cc1-8f66-67d27ca095d0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} +{"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-199642ff-cc77-4ce5-9773-5e104049884f +Openstack-Request-Id: req-fb5577d1-b1f2-4cc1-8f66-67d27ca095d0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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_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.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.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup -ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup ... 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 +{"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.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.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.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.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_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_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.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.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.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.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_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.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.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.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.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.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties ... 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.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.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.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.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.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.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__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.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.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.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_nodes.DbNodeTestCase.test_release_reservation +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation ... 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.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.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.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout ... 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_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_nodes.DbNodeTestCase.test_reservation_after_release +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_after_release ... 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.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_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.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.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power ... 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.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.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.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.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.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.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.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.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node ... 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.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.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_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.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.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.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.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.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.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 ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-47335ebd-f142-4f1b-aa7e-dc1ac969b096 +Openstack-Request-Id: req-c5f61eb5-417a-4f96-9102-889afeffc136 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -36717,50 +32931,50 @@ 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 -Location: http://localhost/v1/volume/targets/6aba101b-8d2d-4759-8cbb-ca8389abc65f -Openstack-Request-Id: req-daea94dd-3da1-4f64-ad5c-ead1f8dc95d4 +Location: http://localhost/v1/volume/targets/1e0ff6b1-fbeb-4b3f-9946-6a30dc485d3e +Openstack-Request-Id: req-68c5e88b-28e4-4298-ad7d-ea4cea4c0d81 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6aba101b-8d2d-4759-8cbb-ca8389abc65f", "created_at": "2024-01-06T10:57:31.751918+00:00", "updated_at": null, "boot_index": 1, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/6aba101b-8d2d-4759-8cbb-ca8389abc65f", "rel": "self"}, {"href": "http://localhost/volume/targets/6aba101b-8d2d-4759-8cbb-ca8389abc65f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +{"uuid": "1e0ff6b1-fbeb-4b3f-9946-6a30dc485d3e", "created_at": "2025-02-07T17:33:48.820036+00:00", "updated_at": null, "boot_index": 1, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1e0ff6b1-fbeb-4b3f-9946-6a30dc485d3e", "rel": "self"}, {"href": "http://localhost/volume/targets/1e0ff6b1-fbeb-4b3f-9946-6a30dc485d3e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} ACL Test GOT Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/volume/targets/6aba101b-8d2d-4759-8cbb-ca8389abc65f -Openstack-Request-Id: req-daea94dd-3da1-4f64-ad5c-ead1f8dc95d4 +Location: http://localhost/v1/volume/targets/1e0ff6b1-fbeb-4b3f-9946-6a30dc485d3e +Openstack-Request-Id: req-68c5e88b-28e4-4298-ad7d-ea4cea4c0d81 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6aba101b-8d2d-4759-8cbb-ca8389abc65f", "created_at": "2024-01-06T10:57:31.751918+00:00", "updated_at": null, "boot_index": 1, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/6aba101b-8d2d-4759-8cbb-ca8389abc65f", "rel": "self"}, {"href": "http://localhost/volume/targets/6aba101b-8d2d-4759-8cbb-ca8389abc65f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +{"uuid": "1e0ff6b1-fbeb-4b3f-9946-6a30dc485d3e", "created_at": "2025-02-07T17:33:48.820036+00:00", "updated_at": null, "boot_index": 1, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1e0ff6b1-fbeb-4b3f-9946-6a30dc485d3e", "rel": "self"}, {"href": "http://localhost/volume/targets/1e0ff6b1-fbeb-4b3f-9946-6a30dc485d3e", "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 -Location: http://localhost/v1/volume/targets/50e9dabf-c101-4814-a533-935eb44faf92 -Openstack-Request-Id: req-308808cb-f1ab-42cb-9586-d2a66c8b5c1f +Location: http://localhost/v1/volume/targets/e4f5cfea-782a-463d-85db-f2723ca495a9 +Openstack-Request-Id: req-1f31bd13-3f6e-4d0a-ab09-a8ebc730b4c9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "50e9dabf-c101-4814-a533-935eb44faf92", "created_at": "2024-01-06T10:57:31.827537+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/50e9dabf-c101-4814-a533-935eb44faf92", "rel": "self"}, {"href": "http://localhost/volume/targets/50e9dabf-c101-4814-a533-935eb44faf92", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +{"uuid": "e4f5cfea-782a-463d-85db-f2723ca495a9", "created_at": "2025-02-07T17:33:48.986680+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/e4f5cfea-782a-463d-85db-f2723ca495a9", "rel": "self"}, {"href": "http://localhost/volume/targets/e4f5cfea-782a-463d-85db-f2723ca495a9", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} ACL Test GOT Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/volume/targets/50e9dabf-c101-4814-a533-935eb44faf92 -Openstack-Request-Id: req-308808cb-f1ab-42cb-9586-d2a66c8b5c1f +Location: http://localhost/v1/volume/targets/e4f5cfea-782a-463d-85db-f2723ca495a9 +Openstack-Request-Id: req-1f31bd13-3f6e-4d0a-ab09-a8ebc730b4c9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "50e9dabf-c101-4814-a533-935eb44faf92", "created_at": "2024-01-06T10:57:31.827537+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/50e9dabf-c101-4814-a533-935eb44faf92", "rel": "self"}, {"href": "http://localhost/volume/targets/50e9dabf-c101-4814-a533-935eb44faf92", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +{"uuid": "e4f5cfea-782a-463d-85db-f2723ca495a9", "created_at": "2025-02-07T17:33:48.986680+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/e4f5cfea-782a-463d-85db-f2723ca495a9", "rel": "self"}, {"href": "http://localhost/volume/targets/e4f5cfea-782a-463d-85db-f2723ca495a9", "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-222e0db4-c040-4bbe-8ae8-bccceb91e54f +Openstack-Request-Id: req-f245832c-1d94-469a-8fc0-aa492d568d71 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-222e0db4-c040-4bbe-8ae8-bccceb91e54f +Openstack-Request-Id: req-f245832c-1d94-469a-8fc0-aa492d568d71 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -36769,392 +32983,601 @@ GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-2be0ce53-8659-47c8-9e33-2212abf6bd5f +Openstack-Request-Id: req-e74ac6ce-3e16-46a2-9d35-ea9b6ff7a761 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-06T10:57:31.947797+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"} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:49.348055+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-2be0ce53-8659-47c8-9e33-2212abf6bd5f +Openstack-Request-Id: req-e74ac6ce-3e16-46a2-9d35-ea9b6ff7a761 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-06T10:57:31.947797+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"} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:49.348055+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-58d036df-6a13-4489-b6f8-4c99c20f65c4 +Openstack-Request-Id: req-f4f197d3-1cae-4c03-b0e4-e1509249d066 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-06T10:57:32.022521+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"} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:49.573185+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 -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.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.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.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.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.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.db.test_nodes.DbNodeTestCase.test_reserve_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node ... 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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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_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.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.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_agent.TestAgentDeploy.test_get_properties -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_properties ... 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.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.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.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.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.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.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.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_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.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.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning ... 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.test_base.TestBareDriver.test_class_variables +ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables ... 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.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.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.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.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.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.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.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.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.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.drivers.modules.test_agent.TestAgentDeploy.test_prepare -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare ... 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_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_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.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.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.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.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.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.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_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_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.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.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.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.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.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.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 -GOT:Response: 201 Created +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.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.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue +ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue ... 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.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.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 +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/deploy_templates/984034fa-b3c2-4ec9-a262-6a6af70c7453 -Openstack-Request-Id: req-83ab09be-ad33-4f76-b065-c46cd92b0111 +Openstack-Request-Id: req-25fb2470-2696-4753-ac0f-e624cde5181e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "984034fa-b3c2-4ec9-a262-6a6af70c7453", "created_at": "2024-01-06T10:57:31.963578+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/984034fa-b3c2-4ec9-a262-6a6af70c7453", "rel": "self"}, {"href": "http://localhost/deploy_templates/984034fa-b3c2-4ec9-a262-6a6af70c7453", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]} -ACL Test GOT Response: 201 Created +{"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 -Location: http://localhost/v1/deploy_templates/984034fa-b3c2-4ec9-a262-6a6af70c7453 -Openstack-Request-Id: req-83ab09be-ad33-4f76-b065-c46cd92b0111 +Openstack-Request-Id: req-25fb2470-2696-4753-ac0f-e624cde5181e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "984034fa-b3c2-4ec9-a262-6a6af70c7453", "created_at": "2024-01-06T10:57:31.963578+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/984034fa-b3c2-4ec9-a262-6a6af70c7453", "rel": "self"}, {"href": "http://localhost/deploy_templates/984034fa-b3c2-4ec9-a262-6a6af70c7453", "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 +{"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-fc13fe2c-fd85-49d8-bd4e-f6444f43a0fe +Openstack-Request-Id: req-02af4abd-0703-4c38-8e16-d7d3f58f16da X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-fc13fe2c-fd85-49d8-bd4e-f6444f43a0fe +Openstack-Request-Id: req-02af4abd-0703-4c38-8e16-d7d3f58f16da X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}]} +{"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-5855a9b5-16e2-4512-bce0-12b946f0f598 +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 +Content-Type: application/json +Openstack-Request-Id: req-5855a9b5-16e2-4512-bce0-12b946f0f598 +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-46f4fdad-be5e-48e8-b40c-bfed2f901d19 +Openstack-Request-Id: req-9ab3a702-5f18-4ff5-a54d-7265b97b2a49 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} +{"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-46f4fdad-be5e-48e8-b40c-bfed2f901d19 +Openstack-Request-Id: req-9ab3a702-5f18-4ff5-a54d-7265b97b2a49 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 {} +{"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-e6174593-2131-47f2-993d-52a4b8692da5 +Openstack-Request-Id: req-df279408-ad77-4c12-b813-d2c3cff35849 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": "758cdd71-eb06-4d3c-b2ae-13665131bb60", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/758cdd71-eb06-4d3c-b2ae-13665131bb60", "rel": "self"}, {"href": "http://localhost/deploy_templates/758cdd71-eb06-4d3c-b2ae-13665131bb60", "rel": "bookmark"}]}]} +{"drivers": []} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e6174593-2131-47f2-993d-52a4b8692da5 +Openstack-Request-Id: req-df279408-ad77-4c12-b813-d2c3cff35849 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": "758cdd71-eb06-4d3c-b2ae-13665131bb60", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/758cdd71-eb06-4d3c-b2ae-13665131bb60", "rel": "self"}, {"href": "http://localhost/deploy_templates/758cdd71-eb06-4d3c-b2ae-13665131bb60", "rel": "bookmark"}]}]} -API ACL Testing Path get /v1/deploy_templates -GET: /v1/deploy_templates {} +{"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-82279711-5aae-4521-9c80-a1b4078b8603 +X-Openstack-Ironic-Api-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-82279711-5aae-4521-9c80-a1b4078b8603 +X-Openstack-Ironic-Api-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: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2c39721f-0a9c-4e8b-ab6f-8dc4b7501403 +Openstack-Request-Id: req-12ff330d-0d2d-47fa-a9c8-f69ad8e2c6bc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} +{"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-2c39721f-0a9c-4e8b-ab6f-8dc4b7501403 +Openstack-Request-Id: req-12ff330d-0d2d-47fa-a9c8-f69ad8e2c6bc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: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-c49fb69b-b902-4d2e-abe6-aa787334d236 +Openstack-Request-Id: req-c38fcca0-a13c-4f9d-98a0-b84b1cfc51ac 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": "7bcc3e41-4ded-4ef9-808e-dde83ff0d254", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/7bcc3e41-4ded-4ef9-808e-dde83ff0d254", "rel": "self"}, {"href": "http://localhost/deploy_templates/7bcc3e41-4ded-4ef9-808e-dde83ff0d254", "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-c49fb69b-b902-4d2e-abe6-aa787334d236 +Openstack-Request-Id: req-c38fcca0-a13c-4f9d-98a0-b84b1cfc51ac 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": "7bcc3e41-4ded-4ef9-808e-dde83ff0d254", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/7bcc3e41-4ded-4ef9-808e-dde83ff0d254", "rel": "self"}, {"href": "http://localhost/deploy_templates/7bcc3e41-4ded-4ef9-808e-dde83ff0d254", "rel": "bookmark"}]}]} -API ACL Testing Path get /v1/deploy_templates/bbe14ab1-b5f6-4f21-a266-3ea7a54725d1 -GET: /v1/deploy_templates/bbe14ab1-b5f6-4f21-a266-3ea7a54725d1 {} -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-0b256ed6-f222-4db0-b7d1-49b5d1731bd5 +Openstack-Request-Id: req-7eb7e310-9c6d-466e-babd-f19edf23e40c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "bbe14ab1-b5f6-4f21-a266-3ea7a54725d1", "created_at": "2024-01-06T10:57:32.353091+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/bbe14ab1-b5f6-4f21-a266-3ea7a54725d1", "rel": "self"}, {"href": "http://localhost/deploy_templates/bbe14ab1-b5f6-4f21-a266-3ea7a54725d1", "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.test_agent.TestAgentDeploy.test_prepare_cleaning -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning ... 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.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.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_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.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_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.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_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_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.conductor.test_manager.SensorsTestCase.test_send_sensor_task -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task ... 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 -GOT:Response: 500 Internal Server Error +{"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-4820ecc4-5227-490e-9a6a-16483defd403 +Openstack-Request-Id: req-7eb7e310-9c6d-466e-babd-f19edf23e40c X-Openstack-Ironic-Api-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 +{"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.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.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_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.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_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.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.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.db.test_nodes.DbNodeTestCase.test_update_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node ... 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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox ... 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.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.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.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_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.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.objects.test_bios.TestBIOSSettingObject.test_create +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create ... 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.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.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.ilo.test_management.IloManagementTestCase.test_create_csr +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_create_csr ... ok +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete ... 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.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_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_aten +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_aten ... ok +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get ... ok +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6ac519a5-871c-45c2-a5e4-850066259feb +Openstack-Request-Id: req-3b23b5a7-8ba6-42c3-ad8d-0e63b791210a X-Openstack-Ironic-Api-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 +{"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-87c7b2ea-d094-4a36-802c-3206bc465141 +Openstack-Request-Id: req-3b23b5a7-8ba6-42c3-ad8d-0e63b791210a X-Openstack-Ironic-Api-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 +{"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/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-662457b4-be0b-4d70-a233-104aaab6fbd5 +Openstack-Request-Id: req-f4c3a616-28bd-4bd5-8b89-c9a4ecc15946 X-Openstack-Ironic-Api-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 +{"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-ba594fac-dbd6-4957-878a-c2374ddf9fe8 +Openstack-Request-Id: req-f4c3a616-28bd-4bd5-8b89-c9a4ecc15946 X-Openstack-Ironic-Api-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 +{"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-cf6b56e7-30ba-4be6-a319-56e90b3eed40 +Openstack-Request-Id: req-629aacc3-acc1-4651-a919-e9651e5b9e89 X-Openstack-Ironic-Api-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 +{"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-470bd0af-25a4-4be5-a8fe-57a5ac88dae5 +Openstack-Request-Id: req-629aacc3-acc1-4651-a919-e9651e5b9e89 X-Openstack-Ironic-Api-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 +{"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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6793f38f-3ccc-4530-bb79-6665808a5135 +Openstack-Request-Id: req-98d4f579-b18b-4144-849e-10b7c7f44776 X-Openstack-Ironic-Api-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 +{"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-4b0dfbb6-6240-4ec3-9bc1-b3dfd6392515 +Openstack-Request-Id: req-98d4f579-b18b-4144-849e-10b7c7f44776 X-Openstack-Ironic-Api-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 +{"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 +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9858990c-adf6-4a3f-aa8d-86445d664ce7 +Openstack-Request-Id: req-be2e41fe-daac-4033-b450-e9e8d44613e2 X-Openstack-Ironic-Api-Maximum-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 +{"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-dd171f5d-8b38-420d-a631-7756102d7deb +Openstack-Request-Id: req-be2e41fe-daac-4033-b450-e9e8d44613e2 X-Openstack-Ironic-Api-Maximum-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 {} +{"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 +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e7111613-0ed6-4c98-ab85-92a46b24bc7d +Openstack-Request-Id: req-cc7aade9-1ec4-4e10-a8dc-b0c38f7d0fc4 X-Openstack-Ironic-Api-Maximum-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/fa0c1b9d-aec6-43ca-a2d5-b801e888739f -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/fa0c1b9d-aec6-43ca-a2d5-b801e888739f {} -GOT:Response: 404 Not Found +{"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-471555c3-adac-489a-9847-eb080c9c678d +Openstack-Request-Id: req-cc7aade9-1ec4-4e10-a8dc-b0c38f7d0fc4 X-Openstack-Ironic-Api-Maximum-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/c9829a07-026d-4291-aac8-8cbe4607adee -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/c9829a07-026d-4291-aac8-8cbe4607adee {} -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.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.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.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_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.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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"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-eb74a6af-1db2-4b62-a84c-ebba67501222 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-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-eb74a6af-1db2-4b62-a84c-ebba67501222 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-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/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-e12a9d10-3e16-4040-825d-38d9b95ed1a7 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-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-e12a9d10-3e16-4040-825d-38d9b95ed1a7 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-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.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.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.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.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.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.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.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.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.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.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.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.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.db.test_nodes.DbNodeTestCase.test_update_node_provision +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision ... 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.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.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_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.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.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.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.db.test_nodes.DbNodeTestCase.test_update_node_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid ... 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.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.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.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.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.objects.test_bios.TestBIOSSettingObject.test_list_save +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save ... 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_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.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.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.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.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.objects.test_bios.TestBIOSSettingObject.test_save +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save ... 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_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.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.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.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.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.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_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.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.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.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.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 ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-58d036df-6a13-4489-b6f8-4c99c20f65c4 +Openstack-Request-Id: req-f4f197d3-1cae-4c03-b0e4-e1509249d066 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-06T10:57:32.022521+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"} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:49.573185+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-d801884e-39b7-456b-aa30-499a83587e03 +Openstack-Request-Id: req-a357a509-2dfd-4e7b-9e64-37f32269b55a 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-06T10:57:32.103786+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"} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:49.769795+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-d801884e-39b7-456b-aa30-499a83587e03 +Openstack-Request-Id: req-a357a509-2dfd-4e7b-9e64-37f32269b55a 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-06T10:57:32.103786+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"} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:49.769795+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-5aed4428-d566-4135-9b7e-6f747844ec11 +Openstack-Request-Id: req-707cca26-252e-45e9-8350-e5adeebb8dc1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-5aed4428-d566-4135-9b7e-6f747844ec11 +Openstack-Request-Id: req-707cca26-252e-45e9-8350-e5adeebb8dc1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37163,14 +33586,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-6e3492de-d973-42fd-bdad-f150f3f5d98f +Openstack-Request-Id: req-d1e4b41a-9567-43f2-8253-deea71dcf3de X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-6e3492de-d973-42fd-bdad-f150f3f5d98f +Openstack-Request-Id: req-d1e4b41a-9567-43f2-8253-deea71dcf3de X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37179,14 +33602,14 @@ DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-bf4fbb47-c518-41a4-9ec9-b6e317ca298d +Openstack-Request-Id: req-5df2ec90-4cda-4132-a58e-74705f0d297f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-bf4fbb47-c518-41a4-9ec9-b6e317ca298d +Openstack-Request-Id: req-5df2ec90-4cda-4132-a58e-74705f0d297f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37195,14 +33618,14 @@ DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-287ffe24-7ed1-4b56-aa10-b5d16b417765 +Openstack-Request-Id: req-071b10b0-06e2-4b07-b617-c4858d90c63f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-287ffe24-7ed1-4b56-aa10-b5d16b417765 +Openstack-Request-Id: req-071b10b0-06e2-4b07-b617-c4858d90c63f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37211,233 +33634,332 @@ DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-4271abf7-e5b5-470f-87d6-168b89b54b93 +Openstack-Request-Id: req-67cc708e-ed2b-486e-804f-90d38321c1e4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-4271abf7-e5b5-470f-87d6-168b89b54b93 +Openstack-Request-Id: req-67cc708e-ed2b-486e-804f-90d38321c1e4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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.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.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_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.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.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.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.objects.test_objects.TestMisc.test_max_version +ironic.tests.unit.objects.test_objects.TestMisc.test_max_version ... 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_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.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_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_objects.TestMisc.test_max_version_one +ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one ... 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.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.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.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.objects.test_objects.TestMisc.test_max_version_two +ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_two ... 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_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.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_port.TestConvertToVersion.test_is_smartnic_supported +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported ... 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.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_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.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.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.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.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.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.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_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.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_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.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.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_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.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.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.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.ilo.test_management.IloManagementTestCase.test_get_properties +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties ... 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.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.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.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.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.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.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.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.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.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_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.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.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.conductor.test_manager.TestIndirectionApiConductor.test_object_action -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action ... 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_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_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.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_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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions ... 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.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action ... 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.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.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.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.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.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_steps.NodeVerifyStepsTestCase.test__get_verify_steps -ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps ... 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_005_nodes_get_node_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_005_nodes_get_node_admin ... 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_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.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.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.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_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.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.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 -ACL Test GOT Response: 200 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.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.ansible.test_deploy.TestAnsibleDeploy.test_deploy +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy ... 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.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.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.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.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.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.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 +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-ec084baf-4497-42d0-8a8b-4e3424b54e91 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-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-ec084baf-4497-42d0-8a8b-4e3424b54e91 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-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 +Content-Type: application/json +Openstack-Request-Id: req-852ea684-cf26-471a-b31f-3bf409c6d630 +X-Openstack-Ironic-Api-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-852ea684-cf26-471a-b31f-3bf409c6d630 +X-Openstack-Ironic-Api-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-16254af8-9196-40e2-9075-7cbe9319a485 +X-Openstack-Ironic-Api-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-0b256ed6-f222-4db0-b7d1-49b5d1731bd5 +Openstack-Request-Id: req-16254af8-9196-40e2-9075-7cbe9319a485 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "bbe14ab1-b5f6-4f21-a266-3ea7a54725d1", "created_at": "2024-01-06T10:57:32.353091+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/bbe14ab1-b5f6-4f21-a266-3ea7a54725d1", "rel": "self"}, {"href": "http://localhost/deploy_templates/bbe14ab1-b5f6-4f21-a266-3ea7a54725d1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -API ACL Testing Path get /v1/deploy_templates/45eba765-46c9-41f6-93e3-1704c9c29678 -GET: /v1/deploy_templates/45eba765-46c9-41f6-93e3-1704c9c29678 {} +{"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-de04f967-ed2d-454b-9d9c-74f8c82c5dee +Openstack-Request-Id: req-1a5e4216-81ef-4c8e-8a93-078d528597d3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} +{"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-de04f967-ed2d-454b-9d9c-74f8c82c5dee +Openstack-Request-Id: req-1a5e4216-81ef-4c8e-8a93-078d528597d3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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/d488fa9b-0d48-499b-8a6b-ad0e23c6029e -GET: /v1/deploy_templates/d488fa9b-0d48-499b-8a6b-ad0e23c6029e {} -GOT:Response: 200 OK +{"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-060812f2-6ed9-44ba-b666-8d6aae104d84 +Openstack-Request-Id: req-728a0d0a-2cee-47ad-8d5a-fa3454f9d770 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "d488fa9b-0d48-499b-8a6b-ad0e23c6029e", "created_at": "2024-01-06T10:57:32.483119+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d488fa9b-0d48-499b-8a6b-ad0e23c6029e", "rel": "self"}, {"href": "http://localhost/deploy_templates/d488fa9b-0d48-499b-8a6b-ad0e23c6029e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -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-060812f2-6ed9-44ba-b666-8d6aae104d84 +Openstack-Request-Id: req-728a0d0a-2cee-47ad-8d5a-fa3454f9d770 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "d488fa9b-0d48-499b-8a6b-ad0e23c6029e", "created_at": "2024-01-06T10:57:32.483119+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d488fa9b-0d48-499b-8a6b-ad0e23c6029e", "rel": "self"}, {"href": "http://localhost/deploy_templates/d488fa9b-0d48-499b-8a6b-ad0e23c6029e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -API ACL Testing Path patch /v1/deploy_templates/e749cd70-b2d4-4f86-9189-3cb7e7adb37e -PATCH: /v1/deploy_templates/e749cd70-b2d4-4f86-9189-3cb7e7adb37e [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] -GOT:Response: 200 OK +{"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-f6de2b5d-f467-4bf1-b06e-492834f3b268 +Openstack-Request-Id: req-ac590b91-5776-45fc-978e-c3fadfe5ee8d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e749cd70-b2d4-4f86-9189-3cb7e7adb37e", "created_at": "2024-01-06T10:57:32.547702+00:00", "updated_at": "2024-01-06T10:57:32.583557+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/e749cd70-b2d4-4f86-9189-3cb7e7adb37e", "rel": "self"}, {"href": "http://localhost/deploy_templates/e749cd70-b2d4-4f86-9189-3cb7e7adb37e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -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-f6de2b5d-f467-4bf1-b06e-492834f3b268 +Openstack-Request-Id: req-ac590b91-5776-45fc-978e-c3fadfe5ee8d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e749cd70-b2d4-4f86-9189-3cb7e7adb37e", "created_at": "2024-01-06T10:57:32.547702+00:00", "updated_at": "2024-01-06T10:57:32.583557+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/e749cd70-b2d4-4f86-9189-3cb7e7adb37e", "rel": "self"}, {"href": "http://localhost/deploy_templates/e749cd70-b2d4-4f86-9189-3cb7e7adb37e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -API ACL Testing Path patch /v1/deploy_templates/c5ff2f1d-9557-4477-a5ec-4e14d819ae7e -PATCH: /v1/deploy_templates/c5ff2f1d-9557-4477-a5ec-4e14d819ae7e [{'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/methods +GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1a8702d2-ef0d-4de5-82a6-95d9b00eca58 +Openstack-Request-Id: req-68676a53-79d4-4a74-8bd1-13dff72630cb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-1a8702d2-ef0d-4de5-82a6-95d9b00eca58 +Openstack-Request-Id: req-68676a53-79d4-4a74-8bd1-13dff72630cb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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/e16655ef-6463-400a-b4c8-40ded5937111 -PATCH: /v1/deploy_templates/e16655ef-6463-400a-b4c8-40ded5937111 [{'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/methods +GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-677d4633-37d3-4cc4-9c8c-01a315e193ec +Openstack-Request-Id: req-f9daa2cb-7c76-4b0d-aba6-bbaafc1bfa68 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-677d4633-37d3-4cc4-9c8c-01a315e193ec +Openstack-Request-Id: req-f9daa2cb-7c76-4b0d-aba6-bbaafc1bfa68 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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/1271c154-18ba-4383-be0d-c4ea2423d251 -DELETE: /v1/deploy_templates/1271c154-18ba-4383-be0d-c4ea2423d251 -GOT:Response: 204 No Content -Openstack-Request-Id: req-92e2042e-22ea-4292-a296-a927fd07d96c +{"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-20c88e9c-14b6-4f12-8a12-934973c81777 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-92e2042e-22ea-4292-a296-a927fd07d96c +{"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-20c88e9c-14b6-4f12-8a12-934973c81777 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/fed5a721-d261-4b56-9616-e04e0c94f05f -DELETE: /v1/deploy_templates/fed5a721-d261-4b56-9616-e04e0c94f05f -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.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.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.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.test_agent_base.AgentDeployMixinTest.test_prepare_instance_to_boot -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_prepare_instance_to_boot ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +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.test_inspector.GetClientTestCase.test__get_client +ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client ... 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.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.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.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_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.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.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_clear_foreign_config +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_clear_foreign_config ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a031a818-70be-4747-bf91-8620bc2f3a0d +Openstack-Request-Id: req-b4445624-bee8-4b1a-b751-811f2ca02c71 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-a031a818-70be-4747-bf91-8620bc2f3a0d +Openstack-Request-Id: req-b4445624-bee8-4b1a-b751-811f2ca02c71 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37446,14 +33968,14 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4f7a0945-7dc7-40df-8009-830279f84208 +Openstack-Request-Id: req-4b2ac85b-c1da-4ac2-be95-a8786efbaf48 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-4f7a0945-7dc7-40df-8009-830279f84208 +Openstack-Request-Id: req-4b2ac85b-c1da-4ac2-be95-a8786efbaf48 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37462,14 +33984,14 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-33f8435d-1eca-41c3-ae43-98077d297412 +Openstack-Request-Id: req-ccc97109-dc89-4de9-b299-d325b664395b 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-33f8435d-1eca-41c3-ae43-98077d297412 +Openstack-Request-Id: req-ccc97109-dc89-4de9-b299-d325b664395b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37478,14 +34000,14 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a1b35523-55c3-4f98-a2b1-ff83b6d99b08 +Openstack-Request-Id: req-37976003-6784-415c-9467-9d32d98f7248 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-a1b35523-55c3-4f98-a2b1-ff83b6d99b08 +Openstack-Request-Id: req-37976003-6784-415c-9467-9d32d98f7248 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37494,140 +34016,534 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-00e72ef5-0b58-4904-afab-401a2a2294ff +Openstack-Request-Id: req-c392bd14-b8c9-4f97-9680-daeca49012cd 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.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.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.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.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_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.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.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.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.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.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.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.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.objects.test_port.TestConvertToVersion.test_physnet_supported_missing +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing ... 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.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.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.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.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.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.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.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_physnet_unsupported_missing +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing ... 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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.ilo.test_management.IloManagementTestCase.test_reset_ilo +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo ... 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 +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-d97bcc95-8bcf-4ce1-a65c-4ac957ea9953 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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-d97bcc95-8bcf-4ce1-a65c-4ac957ea9953 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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-80448cdc-d45a-4ce9-9d5c-db2f7757925f +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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-80448cdc-d45a-4ce9-9d5c-db2f7757925f +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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} +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-b8a9a078-4742-41b0-8c9d-9feb2104ac5e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-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-b8a9a078-4742-41b0-8c9d-9feb2104ac5e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-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} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-fffb0740-dd2e-4647-977c-3ff72c3761ab +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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-fffb0740-dd2e-4647-977c-3ff72c3761ab +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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 {} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-bbedffd5-217f-47d3-b371-402373ed40a8 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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-bbedffd5-217f-47d3-b371-402373ed40a8 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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 +Content-Type: application/json +Openstack-Request-Id: req-2bb4a53a-84b8-4849-b5a6-5c5c2b99f133 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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-2bb4a53a-84b8-4849-b5a6-5c5c2b99f133 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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 +Content-Type: application/json +Openstack-Request-Id: req-37f3bc39-9ae0-44c1-8b0d-2e278a4c77d4 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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-37f3bc39-9ae0-44c1-8b0d-2e278a4c77d4 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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 +Content-Type: application/json +Openstack-Request-Id: req-b1f9cb96-658a-4c98-a55e-72d9b2d29f92 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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-b1f9cb96-658a-4c98-a55e-72d9b2d29f92 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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.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.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.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.ansible.test_deploy.TestAnsibleDeploy.test_get_properties +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties ... 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.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.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.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.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.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.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.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.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.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.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_inspector.GetClientTestCase.test__get_client_standalone +ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_standalone ... 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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning ... 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.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.IPMIToolSocatDriverTestCase.test__exec_stop_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__exec_stop_console ... ok +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-d6a0b194-064f-47c7-a6cc-ae758d69e9df +X-Openstack-Ironic-Api-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 +Content-Type: application/json +Openstack-Request-Id: req-814006be-1049-4984-924e-828b6d43d04d +X-Openstack-Ironic-Api-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 +Content-Type: application/json +Openstack-Request-Id: req-cc73d4e9-28e2-4ac9-9886-a61143c4ec20 +X-Openstack-Ironic-Api-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 +Content-Type: application/json +Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-cb12ea45-7379-4c68-aac0-09cc5836788f +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-07T17:32:54.037432+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': 'bbf0e444-57a2-4164-b0a2-9e7b4e58acc7', '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-6689515e-993d-4f39-8c67-d947850dbd38 +X-Openstack-Ironic-Api-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 +Content-Type: application/json +Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-dce0e116-2b1b-45dc-b948-cd9bd151c579 +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-07T17:32:54.436613+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-07T17:32:54.436613+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 +Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-2cf5f36e-802f-4ff8-bb7e-fd2601967266 +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-07T17:32:54.745413+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/things/ouch {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-8818259b-a742-4acf-8088-d853258e1afc +{"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-327023ef-4a01-47ff-b852-e99421cc2e2c +{"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-8d6ddaad-efa1-4f73-bf42-4495380fd6e3 +{"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-96969254-5781-4bde-822b-d197d533f44f +{"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-9a92f60f-7404-4810-999d-e8796e799a50 + +GET: /v1/things/response_content {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-05439c14-fb15-4420-8d92-db517dc2e3fc +"nothing" +GET: /v1/things/response_custom_status {} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Request-Id: req-8ddf5e4d-ef2e-4bda-8e17-e2324f0ea967 +"accepted" +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.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.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.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.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.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.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.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.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.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.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.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout ... 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_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.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock ... 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.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.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.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.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.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.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_fields.TestNotificationLevelField.test_coerce_bad_value +ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value ... 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.objects.test_fields.TestNotificationLevelField.test_coerce_good_value +ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value ... 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.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.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_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail ... 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.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.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.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.drivers.modules.test_agent.TestAgentDeploy.test_tear_down -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down ... 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.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_agent_base.AgentDeployMixinTest.test_tear_down_agent -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent ... 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.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_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_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.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.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.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.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_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.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.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.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.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.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.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.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.objects.test_node.TestNodePayloads.test_node_payload +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload ... 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.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.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.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.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.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.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.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.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_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.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.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.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.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.IPMIToolSocatDriverTestCase.test__start_console_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail ... 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.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_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_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.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.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.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.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.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.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.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_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.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped ... 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.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.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.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.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.drivers.modules.test_agent.TestAgentDeploy.test_validate -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate ... 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_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.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_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.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.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.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.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.db.test_nodes.DbNodeTestCase.test_check_node_list -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list ... 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.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_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.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.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.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.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.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.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate ... 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_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.objects.test_objects.TestObject.test_as_dict +ironic.tests.unit.objects.test_objects.TestObject.test_as_dict ... 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.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.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.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_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port ... 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.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.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_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.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.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port ... ok ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-00e72ef5-0b58-4904-afab-401a2a2294ff +Openstack-Request-Id: req-c392bd14-b8c9-4f97-9680-daeca49012cd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37636,14 +34552,14 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a87d7a13-f5b6-4d64-8b79-39faa269bc96 +Openstack-Request-Id: req-ef6a29ff-3206-4c96-8296-9e3c60f2ac5f 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-a87d7a13-f5b6-4d64-8b79-39faa269bc96 +Openstack-Request-Id: req-ef6a29ff-3206-4c96-8296-9e3c60f2ac5f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37652,14 +34568,14 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-96736f80-6fac-4e5a-98f0-6880cf186645 +Openstack-Request-Id: req-14711b94-0ec2-438c-8d6b-28af5a2413a1 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-96736f80-6fac-4e5a-98f0-6880cf186645 +Openstack-Request-Id: req-14711b94-0ec2-438c-8d6b-28af5a2413a1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37668,14 +34584,14 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3efa0fee-6e08-4d8d-822e-66a58c9a62a6 +Openstack-Request-Id: req-dbc41561-df93-4eba-9e53-ab43f2a0c903 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-3efa0fee-6e08-4d8d-822e-66a58c9a62a6 +Openstack-Request-Id: req-dbc41561-df93-4eba-9e53-ab43f2a0c903 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37684,14 +34600,14 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c007efc0-13e9-47b2-ab38-2445727cca42 +Openstack-Request-Id: req-1025ce50-8892-4976-839e-955c6b8abfcd 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-c007efc0-13e9-47b2-ab38-2445727cca42 +Openstack-Request-Id: req-1025ce50-8892-4976-839e-955c6b8abfcd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37700,14 +34616,14 @@ GET: /v1/drivers {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-16e8fe6b-f5db-4674-aace-a2c1844ad239 +Openstack-Request-Id: req-2761701f-c217-4f2f-af3f-bbf3146a5646 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 Content-Type: application/json -Openstack-Request-Id: req-16e8fe6b-f5db-4674-aace-a2c1844ad239 +Openstack-Request-Id: req-2761701f-c217-4f2f-af3f-bbf3146a5646 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37716,14 +34632,14 @@ GET: /v1/drivers {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-626d2051-688e-483a-bfd5-bb520caea034 +Openstack-Request-Id: req-8713070a-135a-4be7-9a08-77b0be6846e7 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 Content-Type: application/json -Openstack-Request-Id: req-626d2051-688e-483a-bfd5-bb520caea034 +Openstack-Request-Id: req-8713070a-135a-4be7-9a08-77b0be6846e7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37732,567 +34648,821 @@ GET: /v1/drivers {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b85d1dd5-8550-4a91-b721-08420e2ee439 +Openstack-Request-Id: req-142e8814-03dd-4b58-ad28-9d4f01a550c0 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 Content-Type: application/json -Openstack-Request-Id: req-b85d1dd5-8550-4a91-b721-08420e2ee439 +Openstack-Request-Id: req-142e8814-03dd-4b58-ad28-9d4f01a550c0 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.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.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.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.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.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.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate ... 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_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.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.objects.test_objects.TestObject.test_changed_1 +ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 ... 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.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_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.objects.test_objects.TestObject.test_changed_2 +ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 ... 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.objects.test_objects.TestObject.test_changed_3 +ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 ... 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.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.objects.test_objects.TestObject.test_changed_4 +ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 ... 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.ibmc.test_power.IBMCPowerTestCase.test_get_power_state +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_power_state ... 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-49f38d6f-f716-4866-8e36-5d89c478effc +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-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-49f38d6f-f716-4866-8e36-5d89c478effc +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-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: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-abe2aab9-d193-4b3d-9138-a813ce0165fd +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-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-abe2aab9-d193-4b3d-9138-a813ce0165fd +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-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-22ae7ef8-d6fe-42ef-b7b2-aa76dafe3bdf +X-Openstack-Ironic-Api-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-22ae7ef8-d6fe-42ef-b7b2-aa76dafe3bdf +X-Openstack-Ironic-Api-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 +Content-Type: application/json +Openstack-Request-Id: req-834c854f-7977-46cb-a828-a64c744baa74 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-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-834c854f-7977-46cb-a828-a64c744baa74 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-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 +Content-Type: application/json +Openstack-Request-Id: req-cad479af-9d04-4122-9e97-f05f6af73f28 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-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-cad479af-9d04-4122-9e97-f05f6af73f28 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-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-b2127fdc-a8be-4667-9d6d-0d8f79edab06 +X-Openstack-Ironic-Api-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-b2127fdc-a8be-4667-9d6d-0d8f79edab06 +X-Openstack-Ironic-Api-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 +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-ce256365-2f0d-4975-8725-781413b820d6 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-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-ce256365-2f0d-4975-8725-781413b820d6 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-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: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-0e6e27fd-6901-454c-9da7-c6dcc2574634 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-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-0e6e27fd-6901-454c-9da7-c6dcc2574634 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-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.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.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.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.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.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.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console ... 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.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.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.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.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.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_agent.TestAgentDeploy.test_validate_invalid_image_type -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_image_type ... 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.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.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.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.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.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 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-40007465-8a35-4929-b392-dfffcce93ae1 +Openstack-Request-Id: req-7ccfee6a-7444-45a7-b17c-9e867866105b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-40007465-8a35-4929-b392-dfffcce93ae1 +Openstack-Request-Id: req-7ccfee6a-7444-45a7-b17c-9e867866105b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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/59c2b5a5-a9eb-476d-b6e9-b9937f95ea18 -DELETE: /v1/deploy_templates/59c2b5a5-a9eb-476d-b6e9-b9937f95ea18 +{"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-3aeec393-7580-4ce7-89a7-19ca7b869d86 +Openstack-Request-Id: req-e4e07e56-1daa-49ff-b1c7-4d2c9e715a58 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3aeec393-7580-4ce7-89a7-19ca7b869d86 +Openstack-Request-Id: req-e4e07e56-1daa-49ff-b1c7-4d2c9e715a58 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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 -Location: http://localhost/v1/chassis/42b17879-f06b-4c98-ad36-0ee57227d1da -Openstack-Request-Id: req-f7826cb9-3877-4c70-82bd-709c610f3041 +Openstack-Request-Id: req-a723023c-d15f-4ef7-95be-dbd9578ed766 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "42b17879-f06b-4c98-ad36-0ee57227d1da", "created_at": "2024-01-06T10:57:32.977253+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/42b17879-f06b-4c98-ad36-0ee57227d1da", "rel": "self"}, {"href": "http://localhost/chassis/42b17879-f06b-4c98-ad36-0ee57227d1da", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/42b17879-f06b-4c98-ad36-0ee57227d1da/nodes", "rel": "self"}, {"href": "http://localhost/chassis/42b17879-f06b-4c98-ad36-0ee57227d1da/nodes", "rel": "bookmark"}]]} -ACL Test GOT Response: 201 Created +{"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 -Location: http://localhost/v1/chassis/42b17879-f06b-4c98-ad36-0ee57227d1da -Openstack-Request-Id: req-f7826cb9-3877-4c70-82bd-709c610f3041 +Openstack-Request-Id: req-a723023c-d15f-4ef7-95be-dbd9578ed766 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "42b17879-f06b-4c98-ad36-0ee57227d1da", "created_at": "2024-01-06T10:57:32.977253+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/42b17879-f06b-4c98-ad36-0ee57227d1da", "rel": "self"}, {"href": "http://localhost/chassis/42b17879-f06b-4c98-ad36-0ee57227d1da", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/42b17879-f06b-4c98-ad36-0ee57227d1da/nodes", "rel": "self"}, {"href": "http://localhost/chassis/42b17879-f06b-4c98-ad36-0ee57227d1da/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: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-6635615b-f382-4e03-a714-34d99ed0a413 +Openstack-Request-Id: req-096eb544-7d39-40d1-ab80-9e165255faf9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} +{"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-6635615b-f382-4e03-a714-34d99ed0a413 +Openstack-Request-Id: req-096eb544-7d39-40d1-ab80-9e165255faf9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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'} +{"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-886c96bf-42d4-488d-a00d-a9682aa0bc0b +Openstack-Request-Id: req-66a2ea65-1a71-4a99-9276-08351aece2b0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} +{"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-886c96bf-42d4-488d-a00d-a9682aa0bc0b +Openstack-Request-Id: req-66a2ea65-1a71-4a99-9276-08351aece2b0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-6e28eb09-c0f8-425f-a995-e2d592e1aaee +Openstack-Request-Id: req-dce7748f-3ea5-403c-8aed-b3b0aeedea53 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:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6e28eb09-c0f8-425f-a995-e2d592e1aaee +Openstack-Request-Id: req-dce7748f-3ea5-403c-8aed-b3b0aeedea53 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 {} +{"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-4ab78bba-19f2-4753-baf0-d4b3f4c2bf53 +Openstack-Request-Id: req-b0efadae-23be-46b0-985f-fc9f7cce9903 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} +{"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-4ab78bba-19f2-4753-baf0-d4b3f4c2bf53 +Openstack-Request-Id: req-b0efadae-23be-46b0-985f-fc9f7cce9903 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-2172b15b-bfb7-4b53-a5e6-af5034a0d096 +Openstack-Request-Id: req-2178bfcd-4916-4422-8511-b61366e7731f 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.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.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.TestAgentDeploy.test_validate_invalid_proxies -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_proxies ... 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-2178bfcd-4916-4422-8511-b61366e7731f +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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.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.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.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.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.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.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.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_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.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.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.objects.test_objects.TestObject.test_dehydration +ironic.tests.unit.objects.test_objects.TestObject.test_dehydration ... 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.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_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console ... 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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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_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_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_all_supported_capabilities +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_all_supported_capabilities ... 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.objects.test_objects.TestObject.test_get +ironic.tests.unit.objects.test_objects.TestObject.test_get ... 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_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label ... 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.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.objects.test_objects.TestObject.test_get_changes +ironic.tests.unit.objects.test_objects.TestObject.test_get_changes ... 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.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.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.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.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.db.test_nodes.DbNodeTestCase.test_destroy_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node ... 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.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.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.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.objects.test_objects.TestObject.test_get_changes_pinned +ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned ... 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.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.ibmc.test_power.IBMCPowerTestCase.test_validate +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_validate ... 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.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_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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_ok +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_ok ... 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_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.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.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_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.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.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.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.SNMPClientTestCase.test__get_auth_v1_read +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_read ... 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.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.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.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.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 -GOT:Response: 404 Not Found +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.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.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_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.objects.test_objects.TestObject.test_hydration +ironic.tests.unit.objects.test_objects.TestObject.test_hydration ... 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.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.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.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.objects.test_objects.TestObject.test_hydration_bad_ns +ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-69f881e5-68bf-485c-8439-eab5e59a56d5 +Openstack-Request-Id: req-2c92345d-550b-42b8-a890-37d82554b11d X-Openstack-Ironic-Api-Maximum-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/c821c3a2-d277-481c-b945-b9ff3c5379e2 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/c821c3a2-d277-481c-b945-b9ff3c5379e2 {} -GOT:Response: 404 Not Found +{"bios": [{"created_at": "2025-02-07T17:33:53.645704+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-6be5fa4c-686f-4e26-87a2-22efe15bcf44 +Openstack-Request-Id: req-2c92345d-550b-42b8-a890-37d82554b11d X-Openstack-Ironic-Api-Maximum-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 +{"bios": [{"created_at": "2025-02-07T17:33:53.645704+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-de280460-aadf-4e4c-8efa-7ba78140954d +Openstack-Request-Id: req-651d6044-7f66-45ff-be77-67157a884718 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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-e3470a6c-d5cc-46a0-af8e-38333a4f9020 +Openstack-Request-Id: req-651d6044-7f66-45ff-be77-67157a884718 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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-bbd56fef-e398-4b7d-904a-99f4ba5e5abd +Openstack-Request-Id: req-defa3751-6cdb-4a79-b764-5fea5071e079 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"bios": [{"created_at": "2025-02-07T17:33:54.003466+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-1ad6c376-46a5-43ef-8e57-432f2346684d +Openstack-Request-Id: req-defa3751-6cdb-4a79-b764-5fea5071e079 X-Openstack-Ironic-Api-Maximum-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 +{"bios": [{"created_at": "2025-02-07T17:33:54.003466+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-3b972446-83b7-4be6-bacb-7effc94d402d +Openstack-Request-Id: req-a0e7f2b7-2431-492f-bfd8-a20c32dd4da3 X-Openstack-Ironic-Api-Maximum-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 +{"FAKE_SETTING": {"created_at": "2025-02-07T17:33:54.147588+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-8cff17b5-53c7-4d24-a107-59a5da5f9258 +Openstack-Request-Id: req-a0e7f2b7-2431-492f-bfd8-a20c32dd4da3 X-Openstack-Ironic-Api-Maximum-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 {} +{"FAKE_SETTING": {"created_at": "2025-02-07T17:33:54.147588+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-a9f58124-2dfe-427e-9fea-f9a6dfa927ac +Openstack-Request-Id: req-7661e2ef-0db1-49a2-9563-345855260f49 X-Openstack-Ironic-Api-Maximum-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 +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-725e4efc-d009-4638-ab64-9c33f237662c +Openstack-Request-Id: req-7661e2ef-0db1-49a2-9563-345855260f49 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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-cbf58555-85c7-4c36-864f-64810573ad34 +Openstack-Request-Id: req-457fead2-8fee-44aa-abd6-bd0d48004032 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": []} +{"FAKE_SETTING": {"created_at": "2025-02-07T17:33:54.461814+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-cbf58555-85c7-4c36-864f-64810573ad34 +Openstack-Request-Id: req-457fead2-8fee-44aa-abd6-bd0d48004032 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 {} +{"FAKE_SETTING": {"created_at": "2025-02-07T17:33:54.461814+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_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_objects.TestObject.test_hydration_type_error +ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error ... 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.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_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_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.objects.test_objects.TestObject.test_load +ironic.tests.unit.objects.test_objects.TestObject.test_load ... 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.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.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.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.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.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_objects.TestObject.test_load_in_base +ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base ... 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.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.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.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.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.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.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.objects.test_objects.TestObject.test_obj_constructor +ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor ... 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.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.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_242_conductors_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_242_conductors_get_observer ... 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.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.objects.test_objects.TestObject.test_object_inheritance +ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance ... 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.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.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_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.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.objects.test_objects.TestObject.test_object_property +ironic.tests.unit.objects.test_objects.TestObject.test_object_property ... 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.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.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.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.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.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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image ... ok GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f1ee5a8b-4023-4390-8011-782d4434b80b +Openstack-Request-Id: req-ebdba298-4ab6-4e8f-9db9-3f422f7c40c9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fcc25f76-4f9e-4e76-830e-68ca29713adb +Openstack-Request-Id: req-ebdba298-4ab6-4e8f-9db9-3f422f7c40c9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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: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 {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1c3b64b0-7b27-4ca6-a048-392bf8f8edb2 +Openstack-Request-Id: req-dbd36353-00b6-4a63-b5e2-9d90fe3b740d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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-c58827fa-bb49-4939-a1db-eaaab7c7410f +Openstack-Request-Id: req-dbd36353-00b6-4a63-b5e2-9d90fe3b740d X-Openstack-Ironic-Api-Maximum-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: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 {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-e5f19969-d888-42ab-b564-da93a11a26fd +Openstack-Request-Id: req-86e101f7-c69c-4b51-91cd-16ecdaa30a51 X-Openstack-Ironic-Api-Maximum-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_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.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.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.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.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_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_image_cache.TestFetchCleanup.test__fetch -ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch ... 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.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.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_already_raw -ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_already_raw ... ok - -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-2172b15b-bfb7-4b53-a5e6-af5034a0d096 +Openstack-Request-Id: req-86e101f7-c69c-4b51-91cd-16ecdaa30a51 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: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 {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-13f9b7c2-19d0-4b39-9f00-27125148a487 +Openstack-Request-Id: req-09408692-2c4b-4e35-8f08-ae17226bd09c 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-06T10:57:33.570210+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:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-13f9b7c2-19d0-4b39-9f00-27125148a487 +Openstack-Request-Id: req-09408692-2c4b-4e35-8f08-ae17226bd09c 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-06T10:57:33.570210+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 {} +{"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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test +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-901c6ea6-7f29-4f12-a92d-99497daf5cb2 +Openstack-Request-Id: req-65ad2673-4c80-41d0-903e-418dec12efa5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} +{"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-901c6ea6-7f29-4f12-a92d-99497daf5cb2 +Openstack-Request-Id: req-65ad2673-4c80-41d0-903e-418dec12efa5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test +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-1974ddd3-204b-4bb3-bed4-76067b9c4d75 +Openstack-Request-Id: req-101712e2-7612-416a-991b-73fe66695443 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-06T10:57:33.696293+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:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1974ddd3-204b-4bb3-bed4-76067b9c4d75 +Openstack-Request-Id: req-101712e2-7612-416a-991b-73fe66695443 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-06T10:57:33.696293+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 +{"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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test +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-a21e514a-77ac-49d4-9b51-389cc9582038 +Openstack-Request-Id: req-cc856bb3-31cd-43ea-8c70-e22e301d0363 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": "2024-01-06T10:57:33.760261+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:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a21e514a-77ac-49d4-9b51-389cc9582038 +Openstack-Request-Id: req-cc856bb3-31cd-43ea-8c70-e22e301d0363 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": "2024-01-06T10:57:33.760261+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 {} +{"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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test +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-ecdcab3d-9041-4a69-af15-caadb495a799 +Openstack-Request-Id: req-15f8aaf3-b8b5-4828-b9f7-03a227c2757c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} +{"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-ecdcab3d-9041-4a69-af15-caadb495a799 +Openstack-Request-Id: req-15f8aaf3-b8b5-4828-b9f7-03a227c2757c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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_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_agent.TestAgentDeploy.test_write_image -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image ... 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.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.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_inspector.InspectHardwareAbortTestCase.test_abort_error -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_error ... 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.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.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_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_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls ... 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.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_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.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.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_agent.TestAgentDeploy.test_write_image_partition_image -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_partition_image ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list ... 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.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.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.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.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.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.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.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.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls ... 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.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_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_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.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.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.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_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.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_agent.TestAgentDeploy.test_write_image_with_proxies -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_with_proxies ... 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 +{"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.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_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.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.objects.test_objects.TestObject.test_static_result +ironic.tests.unit.objects.test_objects.TestObject.test_static_result ... 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 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-f672817f-0853-4575-b6d0-1f695129adf8 +Openstack-Request-Id: req-7ee45430-c885-4b58-8ca8-db5e4d531747 X-Openstack-Ironic-Api-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-f672817f-0853-4575-b6d0-1f695129adf8 +Openstack-Request-Id: req-7ee45430-c885-4b58-8ca8-db5e4d531747 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38301,14 +35471,14 @@ GET: /v1/drivers/fake-driverz {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-361b338c-74da-4b71-95a1-491f79e3675c +Openstack-Request-Id: req-a298d644-7016-4caf-a28a-74db28b08355 X-Openstack-Ironic-Api-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-361b338c-74da-4b71-95a1-491f79e3675c +Openstack-Request-Id: req-a298d644-7016-4caf-a28a-74db28b08355 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38317,14 +35487,14 @@ GET: /v1/drivers/fake-driverz {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ab13b68d-7f72-43bb-81a1-624497dc4e42 +Openstack-Request-Id: req-52f9497a-3ecb-4271-917c-8d884b89f39a X-Openstack-Ironic-Api-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-ab13b68d-7f72-43bb-81a1-624497dc4e42 +Openstack-Request-Id: req-52f9497a-3ecb-4271-917c-8d884b89f39a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38333,14 +35503,14 @@ GET: /v1/drivers/fake-driverz/properties {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-bc0c2111-b876-45e1-9567-82c59d0c8ac4 +Openstack-Request-Id: req-cf36f6a5-bedb-4fdf-af4c-59a6198403b8 X-Openstack-Ironic-Api-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-bc0c2111-b876-45e1-9567-82c59d0c8ac4 +Openstack-Request-Id: req-cf36f6a5-bedb-4fdf-af4c-59a6198403b8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38349,14 +35519,14 @@ GET: /v1/drivers/fake-driverz/properties {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1f994748-d1d9-498d-8bab-45f3d6eb005a +Openstack-Request-Id: req-efd12ff0-5c66-4cd7-887a-ed81a2af91d9 X-Openstack-Ironic-Api-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-1f994748-d1d9-498d-8bab-45f3d6eb005a +Openstack-Request-Id: req-efd12ff0-5c66-4cd7-887a-ed81a2af91d9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38365,14 +35535,14 @@ GET: /v1/drivers/fake-driverz/properties {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-76515de7-bff9-456e-a1f5-4748d381ae87 +Openstack-Request-Id: req-393e9ddf-2dba-41a9-ab35-87a47b4fe53e X-Openstack-Ironic-Api-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-76515de7-bff9-456e-a1f5-4748d381ae87 +Openstack-Request-Id: req-393e9ddf-2dba-41a9-ab35-87a47b4fe53e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38381,14 +35551,14 @@ GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2ba01fff-3abd-4a2c-ad00-0e86a1018a11 +Openstack-Request-Id: req-8a9896c6-d58e-4956-9386-8e602f6efe8f X-Openstack-Ironic-Api-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-2ba01fff-3abd-4a2c-ad00-0e86a1018a11 +Openstack-Request-Id: req-8a9896c6-d58e-4956-9386-8e602f6efe8f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38397,14 +35567,14 @@ GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-002c45b9-53c5-453a-8b0b-b4aa80dc2de5 +Openstack-Request-Id: req-eec85cbd-6adf-473c-9f98-511f2c2bf167 X-Openstack-Ironic-Api-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-002c45b9-53c5-453a-8b0b-b4aa80dc2de5 +Openstack-Request-Id: req-eec85cbd-6adf-473c-9f98-511f2c2bf167 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38413,14 +35583,14 @@ GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1092afbb-a824-477d-a37a-3e6de51ac8de +Openstack-Request-Id: req-59a18b0d-69a3-499e-b091-a7a3e8d52b67 X-Openstack-Ironic-Api-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-1092afbb-a824-477d-a37a-3e6de51ac8de +Openstack-Request-Id: req-59a18b0d-69a3-499e-b091-a7a3e8d52b67 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38429,356 +35599,345 @@ 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.objects.test_objects.TestObject.test_supports_version +ironic.tests.unit.objects.test_objects.TestObject.test_supports_version ... 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.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.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.objects.test_objects.TestObject.test_unknown_objtype +ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype ... 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.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.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.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.test_snmp.SNMPClientTestCase.test__get_context +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context ... 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_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.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.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.test_base.RAIDInterfaceTestCase.test_apply_configuration -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration ... 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.test_base.RAIDInterfaceTestCase.test_apply_configuration_delete_existing -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_delete_existing ... 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.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.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.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_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.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties ... ok -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate ... 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.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.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_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.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.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context +ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context ... ok +This is badironic.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 +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-94f2a360-5792-48c0-874e-fa6fc3273d50 +{"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-d0f1d7f6-9696-4a52-9178-5e78fa21f3d1 +{"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-7bd7f6ec-7352-4d35-b5ad-3c2bc232a7b7 +{"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-c09239ff-92d0-4280-b2b7-f46132643719 +{"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-11b2cc71-0440-4c02-88c8-c647fab9de06 +{"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-2085c7f8-c029-4162-96df-565486a154ed +{"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-b8e19c9d-3ee2-482d-96a4-72e8bbc19bee +{"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-41985336-9685-4a61-b049-2afeabcbb9a0 +{"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. +[NodeHistory(conductor='fake-mini',created_at=2025-02-07T17:33:34Z,event='three',event_type='UNKNOWN',id=3,node_id=10,severity='INFO',updated_at=None,user=None,uuid=bd9bea3b-eab8-4830-9cd2-bc3c26197e56), NodeHistory(conductor='fake-mini',created_at=2025-02-07T17:33:34Z,event='two',event_type='UNKNOWN',id=5,node_id=11,severity='INFO',updated_at=None,user=None,uuid=679de41f-bb17-44ec-b095-591755a620a8), NodeHistory(conductor='fake-mini',created_at=2025-02-07T17:33:34Z,event='three',event_type='UNKNOWN',id=6,node_id=11,severity='INFO',updated_at=None,user=None,uuid=42cf5e03-7067-4d44-99bb-aa7b6f1f6ce1), NodeHistory(conductor='fake-mini',created_at=2025-02-07T17:33:34Z,event='two',event_type='UNKNOWN',id=8,node_id=12,severity='INFO',updated_at=None,user=None,uuid=0fe75a07-69bd-4a69-b257-c0c3b0fe0b19), NodeHistory(conductor='fake-mini',created_at=2025-02-07T17:33:34Z,event='three',event_type='UNKNOWN',id=9,node_id=12,severity='INFO',updated_at=None,user=None,uuid=abe120c1-5012-4b81-8340-1ec7f988e912), NodeHistory(conductor='fake-mini',created_at=2025-02-07T17:33:34Z,event='final',event_type='UNKNOWN',id=10,node_id=10,severity='INFO',updated_at=None,user=None,uuid=6851de25-aec7-4ea7-ba07-3cde866c017e)] +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_245_conductors_hostname_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_245_conductors_hostname_get_observer ... 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_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.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.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_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.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.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.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.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.test_base.TestDeployInterface.test_warning_on_heartbeat -ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat ... 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.objects.test_objects.TestObjectSerializer.test__process_object_api -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api ... 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.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.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_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.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.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.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.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.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.test_snmp.SNMPClientTestCase.test__get_transport +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport ... 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.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.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_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.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.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_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.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 -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-c4a3f862-ccbc-4ccd-a338-f75666c6f4ce -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": "2024-01-06T10:57:33.893191+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-c4a3f862-ccbc-4ccd-a338-f75666c6f4ce -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": "2024-01-06T10:57:33.893191+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.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.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.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.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.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.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.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_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.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_management.IloManagementTestCase.test_validate +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_validate ... 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 GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6c8f6dcc-eaaa-4c3d-ad8c-55fc190369e5 +Openstack-Request-Id: req-eeaff8e5-41c9-457b-bc19-1605e7feb318 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": "2024-01-06T10:57:33.958963+00:00", "updated_at": "2024-01-06T10:57:33.989098+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"}]]} +{"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-6c8f6dcc-eaaa-4c3d-ad8c-55fc190369e5 +Openstack-Request-Id: req-eeaff8e5-41c9-457b-bc19-1605e7feb318 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": "2024-01-06T10:57:33.958963+00:00", "updated_at": "2024-01-06T10:57:33.989098+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'}] +{"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-c5169c5a-156b-40a9-8292-1ff7c19dd48d +Openstack-Request-Id: req-92ddd0cc-3888-43a0-af95-94d78e9d458a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} +{"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-c5169c5a-156b-40a9-8292-1ff7c19dd48d +Openstack-Request-Id: req-92ddd0cc-3888-43a0-af95-94d78e9d458a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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'}] -GOT:Response: 403 Forbidden +{"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-38abc803-51f3-4cff-aa5b-72c0524f8dc9 +Openstack-Request-Id: req-f430f11d-7bc6-4e68-b0b3-d1fa7c3d8d6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-38abc803-51f3-4cff-aa5b-72c0524f8dc9 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-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-c723c342-a6f9-4ecd-a374-b20c8019e603 -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-c723c342-a6f9-4ecd-a374-b20c8019e603 +Openstack-Request-Id: req-f430f11d-7bc6-4e68-b0b3-d1fa7c3d8d6b 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 +{"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-caa755e3-796d-44d4-ace8-72d33339327f +Openstack-Request-Id: req-27d051ff-0133-4da8-9dea-c785ba649ad9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"created_at": "2025-02-07T17:33:55.078013+00:00", "updated_at": "2025-02-07T17:33:55.079320+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-caa755e3-796d-44d4-ace8-72d33339327f +Openstack-Request-Id: req-27d051ff-0133-4da8-9dea-c785ba649ad9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"created_at": "2025-02-07T17:33:55.078013+00:00", "updated_at": "2025-02-07T17:33:55.079320+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 Content-Type: application/json -Openstack-Request-Id: req-8a08fff6-daec-45ad-a49c-74dc05fa76cc +Openstack-Request-Id: req-c46af55d-5786-4d5c-ad15-cc0522e7aa1f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} +{"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-8a08fff6-daec-45ad-a49c-74dc05fa76cc +Openstack-Request-Id: req-c46af55d-5786-4d5c-ad15-cc0522e7aa1f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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.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.test_inspector.CheckStatusTestCase.test_exception_ignored -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_exception_ignored ... 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.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.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.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.test_inspector.CheckStatusTestCase.test_not_check_inspecting -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_check_inspecting ... 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.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.drivers.modules.test_inspector.CheckStatusTestCase.test_not_finished -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_finished ... 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.TestObjectSerializer.test_object_serialization_iterables -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables ... 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.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspecting -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspecting ... 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.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_that_does_not_exist -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist ... 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.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.test_inspector.CheckStatusTestCase.test_not_inspector -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspector ... 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_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.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.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults ... ok -This is badironic.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.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.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_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.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_inspector.CheckStatusTestCase.test_status_error -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error ... 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_get_nodeinfo_list_inspection -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_inspection ... 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': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} -GOT:Response: 400 Bad Request +{"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-ab83e5da-9bf2-4936-8895-882afbb089ee +Openstack-Request-Id: req-529fcd7d-8014-4063-bddc-34249ba1b94d X-Openstack-Ironic-Api-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 +{"created_at": "2025-02-07T17:33:55.479717+00:00", "updated_at": "2025-02-07T17:33:55.482447+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 -Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-82ad7885-44f4-4f80-bf84-8aa62743fe02 +Openstack-Request-Id: req-529fcd7d-8014-4063-bddc-34249ba1b94d 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-06T10:56:46.579407+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-06T10:56:46.579407+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 +{"created_at": "2025-02-07T17:33:55.479717+00:00", "updated_at": "2025-02-07T17:33:55.482447+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 -Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-d06799ba-10d8-429a-a66d-00a320d6501f +Openstack-Request-Id: req-257365aa-dc31-44a9-b9a4-b9abcc30b79d 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-06T10:56:46.647983+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/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'}} -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 -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -DELETE: /v1/ -GOT:Response: 405 Method Not Allowed +{"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-b249d390-5374-41df-8c7c-d97283fc9c43 +Openstack-Request-Id: req-257365aa-dc31-44a9-b9a4-b9abcc30b79d 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}"} -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.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.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.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 +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: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-24f864cd-73b0-4e16-b393-3f86d22ae0cd +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-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.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_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.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.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.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.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.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.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_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_snmp.SNMPClientTestCase.test__get_transport_custom_timeout +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_timeout ... 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.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.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_not_iso +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_iso ... 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.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.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.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_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.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.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_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.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_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.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.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.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.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.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.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.test_base.DeployStepDecoratorTestCase.test_deploy_step_all_args +ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_all_args ... 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.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.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.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.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.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_priority +ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_priority ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c78fe975-ac53-4014-bb31-df689c7a6ef2 +Openstack-Request-Id: req-bb48875e-1fa9-4c20-9c1d-d47467b808ea X-Openstack-Ironic-Api-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-c78fe975-ac53-4014-bb31-df689c7a6ef2 +Openstack-Request-Id: req-bb48875e-1fa9-4c20-9c1d-d47467b808ea X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38787,14 +35946,14 @@ GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6abcfa03-35a3-46fa-abd1-eb52feb94fe1 +Openstack-Request-Id: req-422aed0b-6996-4890-a321-75ca4b74a333 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-6abcfa03-35a3-46fa-abd1-eb52feb94fe1 +Openstack-Request-Id: req-422aed0b-6996-4890-a321-75ca4b74a333 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38803,14 +35962,14 @@ GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1f0678cc-07d7-4afc-b757-4f45319c2dab +Openstack-Request-Id: req-4db5c35d-3dfa-4029-8f06-4eb3c1e8ff24 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-1f0678cc-07d7-4afc-b757-4f45319c2dab +Openstack-Request-Id: req-4db5c35d-3dfa-4029-8f06-4eb3c1e8ff24 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38819,14 +35978,14 @@ GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-56a3e47c-8b2e-4185-9dee-079a02b5f09b +Openstack-Request-Id: req-db8e95bb-143d-441e-b97f-93dba04d04ee X-Openstack-Ironic-Api-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-56a3e47c-8b2e-4185-9dee-079a02b5f09b +Openstack-Request-Id: req-db8e95bb-143d-441e-b97f-93dba04d04ee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38835,14 +35994,14 @@ GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3a697ab5-6643-403a-a959-a95a86967c95 +Openstack-Request-Id: req-1a137290-6097-46fd-9c48-a31f54825449 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-3a697ab5-6643-403a-a959-a95a86967c95 +Openstack-Request-Id: req-1a137290-6097-46fd-9c48-a31f54825449 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38851,14 +36010,14 @@ GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-192f472f-0155-4d60-83cb-98c1824aa814 +Openstack-Request-Id: req-b84b8399-c8ef-48c8-9350-7433943b9633 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-192f472f-0155-4d60-83cb-98c1824aa814 +Openstack-Request-Id: req-b84b8399-c8ef-48c8-9350-7433943b9633 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38867,14 +36026,14 @@ POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2fc44d22-3c97-4528-b6ed-49e1873d83e4 +Openstack-Request-Id: req-fb8e441f-c4ee-4207-8feb-da5a08da826c X-Openstack-Ironic-Api-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-2fc44d22-3c97-4528-b6ed-49e1873d83e4 +Openstack-Request-Id: req-fb8e441f-c4ee-4207-8feb-da5a08da826c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38883,14 +36042,14 @@ POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-63f6b52b-58cd-4d81-8a74-84b4636512fe +Openstack-Request-Id: req-e5f29246-2065-4263-949d-778acdfc877a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-63f6b52b-58cd-4d81-8a74-84b4636512fe +Openstack-Request-Id: req-e5f29246-2065-4263-949d-778acdfc877a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38899,362 +36058,390 @@ POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-77a742aa-668d-4d60-8173-61e853aa9f20 +Openstack-Request-Id: req-3bc6b131-04c9-4f66-a450-0186906c0ee2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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.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.test_base.TestBIOSInterface.test_apply_configuration_wrapper +ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper ... 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.test_base.TestBIOSInterface.test_factory_reset_wrapper +ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper ... 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.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate ... 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.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.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.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.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.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 -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-0a12dabf-93ea-4b9f-b99d-1ef0a43a1223 -X-Openstack-Ironic-Api-Maximum-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 +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_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 +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-0ab3854b-53f6-4fba-9f59-ff26811eff33 +Openstack-Request-Id: req-71024024-45cb-4072-86be-0d989b2a67c3 X-Openstack-Ironic-Api-Maximum-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:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-4ed2e00f-ce66-486b-99d1-9f1a770f47e8 +Openstack-Request-Id: req-71024024-45cb-4072-86be-0d989b2a67c3 X-Openstack-Ironic-Api-Maximum-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: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 Content-Type: application/json -Openstack-Request-Id: req-dd7e1578-a3ff-41e7-b323-05f6d1e007d6 +Openstack-Request-Id: req-17dfb0ec-4d75-48ce-a012-49346133080d X-Openstack-Ironic-Api-Maximum-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\": \"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-2814ae3a-473f-4fde-853b-e2257b7841f8 +Openstack-Request-Id: req-17dfb0ec-4d75-48ce-a012-49346133080d X-Openstack-Ironic-Api-Maximum-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\": \"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 Content-Type: application/json -Openstack-Request-Id: req-e8affe59-aff7-4e42-b783-a60094a268db +Openstack-Request-Id: req-96ad723a-84c9-41bf-8ec3-8be51356110c X-Openstack-Ironic-Api-Maximum-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\": \"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-d74a4135-75ee-4aa8-9f2d-a8dc1bc8a71e +Openstack-Request-Id: req-96ad723a-84c9-41bf-8ec3-8be51356110c X-Openstack-Ironic-Api-Maximum-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\": \"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 Content-Type: application/json -Openstack-Request-Id: req-2963489f-382f-4a4b-943e-ff6d1761d6c2 +Openstack-Request-Id: req-9b1d4702-0e54-46ba-9ecb-c76872640cc1 X-Openstack-Ironic-Api-Maximum-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\": \"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-96d285c6-e745-471e-a85e-f657bff77527 +Openstack-Request-Id: req-9b1d4702-0e54-46ba-9ecb-c76872640cc1 X-Openstack-Ironic-Api-Maximum-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\": \"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-fa352723-f134-443c-9766-aa5e7e8eb271 +Openstack-Request-Id: req-ec5ceb77-2a6b-4372-b6e0-8d858ece2606 X-Openstack-Ironic-Api-Maximum-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:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-300d128f-6598-47de-b080-4090578c9f53 +Openstack-Request-Id: req-ec5ceb77-2a6b-4372-b6e0-8d858ece2606 X-Openstack-Ironic-Api-Maximum-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: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-b3c53aa4-49fd-4af0-a64b-5bec4c8b2065 +Openstack-Request-Id: req-573c1b04-7b4f-4cf5-b713-68a8f80664f0 X-Openstack-Ironic-Api-Maximum-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:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c6037c1e-11af-4a38-aefb-47a65f73367d +Openstack-Request-Id: req-573c1b04-7b4f-4cf5-b713-68a8f80664f0 X-Openstack-Ironic-Api-Maximum-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 +{"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-ec0aa732-c960-487f-843d-2ffdd0638af6 +Openstack-Request-Id: req-f3e52556-e29e-41ae-bd9e-2a5963bbf6e4 X-Openstack-Ironic-Api-Maximum-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 -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.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.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.db.test_nodes.DbNodeTestCase.test_release_non_locked_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_locked_node ... ok -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} -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-c305cc7f-f40f-4b5a-b1e8-1e4abaf6b58b +Openstack-Request-Id: req-f3e52556-e29e-41ae-bd9e-2a5963bbf6e4 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": "4afc7d5b-894e-4b8b-9961-792e403bb4ff", "created_at": "2024-01-06T10:57:34.378226+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/4afc7d5b-894e-4b8b-9961-792e403bb4ff", "rel": "self"}]}]} -ACL Test 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/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-c305cc7f-f40f-4b5a-b1e8-1e4abaf6b58b +Openstack-Request-Id: req-251b7d2c-aeb2-466b-b003-91d01486d747 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": "4afc7d5b-894e-4b8b-9961-792e403bb4ff", "created_at": "2024-01-06T10:57:34.378226+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/4afc7d5b-894e-4b8b-9961-792e403bb4ff", "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 +{"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-210cdd39-8047-4ed1-b6c3-3e05d929ca54 +Openstack-Request-Id: req-251b7d2c-aeb2-466b-b003-91d01486d747 X-Openstack-Ironic-Api-Maximum-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}"} +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.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.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.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.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.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.drivers.test_ilo.Ilo5HardwareTestCase.test_override_raid +ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_override_raid ... 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.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.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.test_snmp.SNMPClientTestCase.test__get_transport_err +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err ... ok +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_create +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_create ... 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.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.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.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.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.objects.test_allocation.TestAllocationObject.test_get_by_id +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_id ... ok +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-210cdd39-8047-4ed1-b6c3-3e05d929ca54 +Openstack-Request-Id: req-24f864cd-73b0-4e16-b393-3f86d22ae0cd X-Openstack-Ironic-Api-Maximum-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 {} +{"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-a001572d-69b4-4147-a5ca-5087d4489637 +Openstack-Request-Id: req-a484fb96-7f32-41d1-8754-a9357c27758d 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": "095a0b6b-71f5-4517-ab6e-7250d2fa09b1", "created_at": "2024-01-06T10:57:34.522640+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/095a0b6b-71f5-4517-ab6e-7250d2fa09b1", "rel": "self"}]}]} +{"allocations": [{"uuid": "2f831ea5-5e86-4f82-bf2b-603e8dc2b7c1", "created_at": "2025-02-07T17:33:56.044999+00:00", "updated_at": "2025-02-07T17:33:56.060331+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/2f831ea5-5e86-4f82-bf2b-603e8dc2b7c1", "rel": "self"}, {"href": "http://localhost/allocations/2f831ea5-5e86-4f82-bf2b-603e8dc2b7c1", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a001572d-69b4-4147-a5ca-5087d4489637 +Openstack-Request-Id: req-a484fb96-7f32-41d1-8754-a9357c27758d 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": "095a0b6b-71f5-4517-ab6e-7250d2fa09b1", "created_at": "2024-01-06T10:57:34.522640+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/095a0b6b-71f5-4517-ab6e-7250d2fa09b1", "rel": "self"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/4034104d-5bfc-4a7d-b1a0-a5fdfee690d2 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/4034104d-5bfc-4a7d-b1a0-a5fdfee690d2 {} -GOT:Response: 200 OK +{"allocations": [{"uuid": "2f831ea5-5e86-4f82-bf2b-603e8dc2b7c1", "created_at": "2025-02-07T17:33:56.044999+00:00", "updated_at": "2025-02-07T17:33:56.060331+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/2f831ea5-5e86-4f82-bf2b-603e8dc2b7c1", "rel": "self"}, {"href": "http://localhost/allocations/2f831ea5-5e86-4f82-bf2b-603e8dc2b7c1", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} +API ACL Testing Path get /v1/allocations +GET: /v1/allocations {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-aeb42f08-6071-4e4d-8ce0-94f1d3e2a169 +Openstack-Request-Id: req-4b5cbd28-a200-4665-9b26-20d60af2b3db X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "4034104d-5bfc-4a7d-b1a0-a5fdfee690d2", "created_at": "2024-01-06T10:57:34.592769+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/4034104d-5bfc-4a7d-b1a0-a5fdfee690d2", "rel": "self"}]} -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-aeb42f08-6071-4e4d-8ce0-94f1d3e2a169 +Openstack-Request-Id: req-4b5cbd28-a200-4665-9b26-20d60af2b3db X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "4034104d-5bfc-4a7d-b1a0-a5fdfee690d2", "created_at": "2024-01-06T10:57:34.592769+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/4034104d-5bfc-4a7d-b1a0-a5fdfee690d2", "rel": "self"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/e8bac132-817f-4b09-8d75-b3d9d7845c81 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/e8bac132-817f-4b09-8d75-b3d9d7845c81 {} -GOT:Response: 404 Not Found +{"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-001c6072-a3b2-45c7-a5be-b78179ff984d +Openstack-Request-Id: req-a9557104-e371-4a4d-afab-c50fb905a13b X-Openstack-Ironic-Api-Maximum-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 +{"allocations": [{"uuid": "238422bd-19b3-489d-b5ba-fbd89e2fe1e5", "created_at": "2025-02-07T17:33:56.314600+00:00", "updated_at": "2025-02-07T17:33:56.324749+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/238422bd-19b3-489d-b5ba-fbd89e2fe1e5", "rel": "self"}, {"href": "http://localhost/allocations/238422bd-19b3-489d-b5ba-fbd89e2fe1e5", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-001c6072-a3b2-45c7-a5be-b78179ff984d +Openstack-Request-Id: req-a9557104-e371-4a4d-afab-c50fb905a13b X-Openstack-Ironic-Api-Maximum-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/d7442dab-e9d8-4771-8017-f96b27de84e5 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/d7442dab-e9d8-4771-8017-f96b27de84e5 {} +{"allocations": [{"uuid": "238422bd-19b3-489d-b5ba-fbd89e2fe1e5", "created_at": "2025-02-07T17:33:56.314600+00:00", "updated_at": "2025-02-07T17:33:56.324749+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/238422bd-19b3-489d-b5ba-fbd89e2fe1e5", "rel": "self"}, {"href": "http://localhost/allocations/238422bd-19b3-489d-b5ba-fbd89e2fe1e5", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} +API ACL Testing Path get /v1/allocations/b40120cc-cf0d-4fed-a3b1-5e491bffe551 +GET: /v1/allocations/b40120cc-cf0d-4fed-a3b1-5e491bffe551 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-736a77f2-b58f-4a4a-bad7-00fd1abc40d3 +Openstack-Request-Id: req-d5254e65-9705-4cea-8984-e0727189ee0b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "d7442dab-e9d8-4771-8017-f96b27de84e5", "created_at": "2024-01-06T10:57:34.733556+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/d7442dab-e9d8-4771-8017-f96b27de84e5", "rel": "self"}]} +{"uuid": "b40120cc-cf0d-4fed-a3b1-5e491bffe551", "created_at": "2025-02-07T17:33:56.452868+00:00", "updated_at": "2025-02-07T17:33:56.462853+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/b40120cc-cf0d-4fed-a3b1-5e491bffe551", "rel": "self"}, {"href": "http://localhost/allocations/b40120cc-cf0d-4fed-a3b1-5e491bffe551", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-736a77f2-b58f-4a4a-bad7-00fd1abc40d3 +Openstack-Request-Id: req-d5254e65-9705-4cea-8984-e0727189ee0b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "d7442dab-e9d8-4771-8017-f96b27de84e5", "created_at": "2024-01-06T10:57:34.733556+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/d7442dab-e9d8-4771-8017-f96b27de84e5", "rel": "self"}]} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} -GOT:Response: 403 Forbidden +{"uuid": "b40120cc-cf0d-4fed-a3b1-5e491bffe551", "created_at": "2025-02-07T17:33:56.452868+00:00", "updated_at": "2025-02-07T17:33:56.462853+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/b40120cc-cf0d-4fed-a3b1-5e491bffe551", "rel": "self"}, {"href": "http://localhost/allocations/b40120cc-cf0d-4fed-a3b1-5e491bffe551", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +API ACL Testing Path get /v1/allocations/19db1931-16c6-403d-9dd1-ad1c03758b8e +GET: /v1/allocations/19db1931-16c6-403d-9dd1-ad1c03758b8e {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d9c987d1-f919-4b1b-84c1-8332b08c9b10 +Openstack-Request-Id: req-9b8effd4-1044-4953-8b88-5ba6a7c2ba47 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} -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.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.db.test_nodes.DbNodeTestCase.test_release_reservation -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation ... 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.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.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.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.test_inspector.CheckStatusTestCase.test_status_ok -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok ... 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.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.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node ... ok -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 -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.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.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.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.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_reserve_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node ... 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.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.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.objects.test_allocation.TestAllocationObject.test_create -ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_create ... 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.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.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.objects.test_allocation.TestAllocationObject.test_get_by_id -ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_id ... 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.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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 19db1931-16c6-403d-9dd1-ad1c03758b8e could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-9b8effd4-1044-4953-8b88-5ba6a7c2ba47 +X-Openstack-Ironic-Api-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 19db1931-16c6-403d-9dd1-ad1c03758b8e could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/allocations/33907f78-0426-44d8-9684-f9088825bf9d +GET: /v1/allocations/33907f78-0426-44d8-9684-f9088825bf9d {} +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_power.IloPowerTestCase.test_reboot_with_timeout +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_with_timeout ... 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.objects.test_allocation.TestAllocationObject.test_get_by_name ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_name ... 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.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.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_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.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_allocation.TestAllocationObject.test_get_by_uuid ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_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 +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get ... 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_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_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.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.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_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_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.objects.test_allocation.TestAllocationObject.test_payload_schemas ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_payload_schemas ... 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_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.ilo.test_power.IloPowerTestCase.test_validate +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate ... 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.objects.test_allocation.TestAllocationObject.test_refresh ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_refresh ... 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.objects.test_allocation.TestAllocationObject.test_save ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save ... 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_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.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.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.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.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.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.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.objects.test_allocation.TestAllocationObject.test_save_after_refresh ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save_after_refresh ... 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.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.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_node.TestNodeObject.test__validate_property_values_success +ironic.tests.unit.objects.test_node.TestNodeObject.test__validate_property_values_success ... 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.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.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.objects.test_node.TestNodeObject.test_as_dict_insecure +ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_insecure ... 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.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.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.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.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.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.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.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.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.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.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.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.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next ... 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_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.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_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.objects.test_node.TestNodeObject.test_create +ironic.tests.unit.objects.test_node.TestNodeObject.test_create ... ok ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-77a742aa-668d-4d60-8173-61e853aa9f20 +Openstack-Request-Id: req-3bc6b131-04c9-4f66-a450-0186906c0ee2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -39263,14 +36450,14 @@ PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c2405e34-5f45-41a0-8f1a-5206afcb272a +Openstack-Request-Id: req-8555e230-7037-4857-86d8-94f0e5330ff0 X-Openstack-Ironic-Api-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-c2405e34-5f45-41a0-8f1a-5206afcb272a +Openstack-Request-Id: req-8555e230-7037-4857-86d8-94f0e5330ff0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -39279,14 +36466,14 @@ PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7ef8fc59-752d-4923-a643-73671cb8eb12 +Openstack-Request-Id: req-145278bd-abcc-46bc-8ed6-eb26a9aeeffe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-7ef8fc59-752d-4923-a643-73671cb8eb12 +Openstack-Request-Id: req-145278bd-abcc-46bc-8ed6-eb26a9aeeffe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -39295,14 +36482,14 @@ PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-446c7b03-e7f0-4144-9b45-a497ab61cf50 +Openstack-Request-Id: req-44737486-110a-4731-b68f-731d9864ad45 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-446c7b03-e7f0-4144-9b45-a497ab61cf50 +Openstack-Request-Id: req-44737486-110a-4731-b68f-731d9864ad45 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -39311,14 +36498,14 @@ DELETE: /v1/drivers/fake-driverz/vendor_passthru?method=test GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ef4ed094-7708-4495-9e25-917b627e396c +Openstack-Request-Id: req-146783d9-fc78-40df-b08f-8f53a3241111 X-Openstack-Ironic-Api-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-ef4ed094-7708-4495-9e25-917b627e396c +Openstack-Request-Id: req-146783d9-fc78-40df-b08f-8f53a3241111 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -39327,14 +36514,14 @@ DELETE: /v1/drivers/fake-driverz/vendor_passthru?method=test GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ee998e3d-a609-4b6c-9b39-013d40187d1f +Openstack-Request-Id: req-8f462544-8678-4a56-b0f9-8da2f09c0299 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-ee998e3d-a609-4b6c-9b39-013d40187d1f +Openstack-Request-Id: req-8f462544-8678-4a56-b0f9-8da2f09c0299 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -39343,358 +36530,438 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b905adc5-3252-4ad6-b04d-367beb5673a8 +Openstack-Request-Id: req-9fbbc533-ea26-490a-9c10-ccfe3f3ffb22 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": "2024-01-06T10:57:35.147993+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"}]}]} +{"bios": [{"created_at": "2025-02-07T17:33:56.958616+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-b905adc5-3252-4ad6-b04d-367beb5673a8 +Openstack-Request-Id: req-9fbbc533-ea26-490a-9c10-ccfe3f3ffb22 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": "2024-01-06T10:57:35.147993+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"}]}]} +{"bios": [{"created_at": "2025-02-07T17:33:56.958616+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-e950216f-6fbe-4652-9b99-f299dc5348d7 +Openstack-Request-Id: req-ff0f3da4-bff3-4071-852a-12bdcb19eb92 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": "2024-01-06T10:57:35.221067+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"}]}]} +{"bios": [{"created_at": "2025-02-07T17:33:57.061866+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-e950216f-6fbe-4652-9b99-f299dc5348d7 +Openstack-Request-Id: req-ff0f3da4-bff3-4071-852a-12bdcb19eb92 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": "2024-01-06T10:57:35.221067+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"}]}]} +{"bios": [{"created_at": "2025-02-07T17:33:57.061866+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.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.objects.test_port.TestConvertToVersion.test_is_smartnic_supported -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported ... 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.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.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.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.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.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported ... 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.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.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.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_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_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.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.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.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.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_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_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.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.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.objects.test_port.TestConvertToVersion.test_physnet_supported_missing -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing ... 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.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.objects.test_port.TestConvertToVersion.test_physnet_supported_set -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set ... 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.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.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.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.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.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.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.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.objects.test_port.TestConvertToVersion.test_vif_in_extra -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra ... 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.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.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.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.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.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.db.test_nodes.DbNodeTestCase.test_update_node_provision -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision ... 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'}} -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.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.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.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.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.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.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.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.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.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_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_traits_validate_fail +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_traits_validate_fail ... ok +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-29c06849-62d8-48a9-bce2-c4452c93b631 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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-d9c987d1-f919-4b1b-84c1-8332b08c9b10 +Openstack-Request-Id: req-29c06849-62d8-48a9-bce2-c4452c93b631 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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/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-8b2ae83f-f6ba-4536-baae-990402886801 +Openstack-Request-Id: req-8ee6cb13-5e88-48b1-8f86-87d27ea5d670 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-8b2ae83f-f6ba-4536-baae-990402886801 +Openstack-Request-Id: req-8ee6cb13-5e88-48b1-8f86-87d27ea5d670 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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'} +{"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/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-0be6ce97-b484-476e-a100-affd828bd38d +Openstack-Request-Id: req-708f001f-154a-49e5-a730-1bd79002e957 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +{"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-0be6ce97-b484-476e-a100-affd828bd38d +Openstack-Request-Id: req-708f001f-154a-49e5-a730-1bd79002e957 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"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-7ca8660a-22fd-4505-8a09-0bbda397aa0e +Openstack-Request-Id: req-3190847c-e92b-4549-8961-66fe1f29a944 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +{"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-7ca8660a-22fd-4505-8a09-0bbda397aa0e +Openstack-Request-Id: req-3190847c-e92b-4549-8961-66fe1f29a944 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test +DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-727bcca0-a5ce-4353-8834-a91e482cbfdb +Openstack-Request-Id: req-68182688-82f4-4d3e-a1b0-cf022073e812 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +{"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-727bcca0-a5ce-4353-8834-a91e482cbfdb +Openstack-Request-Id: req-68182688-82f4-4d3e-a1b0-cf022073e812 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test +DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ccace0fe-6e83-4e53-9d2f-6677ff38393a +Openstack-Request-Id: req-7616ac6f-f651-4dc6-8e24-a034d9961567 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +{"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-ccace0fe-6e83-4e53-9d2f-6677ff38393a +Openstack-Request-Id: req-7616ac6f-f651-4dc6-8e24-a034d9961567 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test +DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b3e9cde8-f230-4372-a555-d238a2cbf438 +Openstack-Request-Id: req-2aaf1b6a-472d-4dac-b618-03b33db7c02c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +{"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-b3e9cde8-f230-4372-a555-d238a2cbf438 +Openstack-Request-Id: req-2aaf1b6a-472d-4dac-b618-03b33db7c02c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test +DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-daf0b9e9-ae3c-4d4b-adff-60a7ed362a45 +Openstack-Request-Id: req-784d7466-0e2b-4f86-9c04-db3527c02532 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +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.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.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.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.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.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.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.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.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_node.TestNodeObject.test_get_by_instance_uuid +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_uuid ... 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_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.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.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.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.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.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.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.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.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.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.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.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.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.objects.test_node.TestNodeObject.test_get_by_uuid +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid ... 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.objects.test_node.TestNodeObject.test_get_interface +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface ... 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.objects.test_node.TestNodeObject.test_get_interface_overriden +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface_overriden ... 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.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.objects.test_node.TestNodeObject.test_list +ironic.tests.unit.objects.test_node.TestNodeObject.test_list ... 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.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.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.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 +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-f6904c95-9758-4cf1-b340-22c7969f42c8 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "33907f78-0426-44d8-9684-f9088825bf9d", "created_at": "2025-02-07T17:33:56.654049+00:00", "updated_at": "2025-02-07T17:33:56.662828+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/33907f78-0426-44d8-9684-f9088825bf9d", "rel": "self"}, {"href": "http://localhost/allocations/33907f78-0426-44d8-9684-f9088825bf9d", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-f6904c95-9758-4cf1-b340-22c7969f42c8 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "33907f78-0426-44d8-9684-f9088825bf9d", "created_at": "2025-02-07T17:33:56.654049+00:00", "updated_at": "2025-02-07T17:33:56.662828+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/33907f78-0426-44d8-9684-f9088825bf9d", "rel": "self"}, {"href": "http://localhost/allocations/33907f78-0426-44d8-9684-f9088825bf9d", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +API ACL Testing Path patch /v1/allocations/dd32e2ca-b114-415f-b183-95b0e4d57cef +PATCH: /v1/allocations/dd32e2ca-b114-415f-b183-95b0e4d57cef [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-fcf2c71c-9baf-4881-888f-407eea114eb4 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "dd32e2ca-b114-415f-b183-95b0e4d57cef", "created_at": "2025-02-07T17:33:56.774472+00:00", "updated_at": "2025-02-07T17:33:56.827681+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/dd32e2ca-b114-415f-b183-95b0e4d57cef", "rel": "self"}, {"href": "http://localhost/allocations/dd32e2ca-b114-415f-b183-95b0e4d57cef", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-fcf2c71c-9baf-4881-888f-407eea114eb4 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "dd32e2ca-b114-415f-b183-95b0e4d57cef", "created_at": "2025-02-07T17:33:56.774472+00:00", "updated_at": "2025-02-07T17:33:56.827681+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/dd32e2ca-b114-415f-b183-95b0e4d57cef", "rel": "self"}, {"href": "http://localhost/allocations/dd32e2ca-b114-415f-b183-95b0e4d57cef", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +API ACL Testing Path patch /v1/allocations/8eafd0ca-6385-474d-a15e-cbbba0889a48 +PATCH: /v1/allocations/8eafd0ca-6385-474d-a15e-cbbba0889a48 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-603cd7ea-f4bc-4ec1-93db-7a531d08688e +X-Openstack-Ironic-Api-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 8eafd0ca-6385-474d-a15e-cbbba0889a48 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-603cd7ea-f4bc-4ec1-93db-7a531d08688e +X-Openstack-Ironic-Api-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 8eafd0ca-6385-474d-a15e-cbbba0889a48 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/allocations/dc9aa429-b412-4431-8d05-0046d4845490 +PATCH: /v1/allocations/dc9aa429-b412-4431-8d05-0046d4845490 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-30181cf1-76f1-4fb5-bebf-9d75414a28bc +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-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-daf0b9e9-ae3c-4d4b-adff-60a7ed362a45 +Openstack-Request-Id: req-30181cf1-76f1-4fb5-bebf-9d75414a28bc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:update\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/allocations/1820931c-375e-4eef-b6c9-c720616aa507 +DELETE: /v1/allocations/1820931c-375e-4eef-b6c9-c720616aa507 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-2b6cb08a-d494-4ead-bd35-e4549c877470 +Openstack-Request-Id: req-16a25378-c10a-4908-8f4d-fb5e1f8543cc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-2b6cb08a-d494-4ead-bd35-e4549c877470 +Openstack-Request-Id: req-16a25378-c10a-4908-8f4d-fb5e1f8543cc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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'} -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.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.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.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.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 +API ACL Testing Path delete /v1/allocations/c7fd8386-636b-43c1-8605-a52aef1454df +DELETE: /v1/allocations/c7fd8386-636b-43c1-8605-a52aef1454df +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-8ffdeb93-ec49-483d-8d80-2137227b06ab +X-Openstack-Ironic-Api-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 c7fd8386-636b-43c1-8605-a52aef1454df could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-8ffdeb93-ec49-483d-8d80-2137227b06ab +X-Openstack-Ironic-Api-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 c7fd8386-636b-43c1-8605-a52aef1454df could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/allocations/f152e59a-9f84-44ac-bced-7958e0c555bd +DELETE: /v1/allocations/f152e59a-9f84-44ac-bced-7958e0c555bd +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-a8d11cd1-9c42-4010-a8fc-4b61e178f9f0 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-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.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.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.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.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_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_flat.TestFlatInterface.test_add_inspection_network +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_inspection_network ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas +ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-63f32dfe-19e2-4128-8016-5e1a668c6ed6 +Openstack-Request-Id: req-52124c55-501a-41ba-b7a6-8e5324af3b31 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": "2024-01-06T10:57:35.293305+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"}]}]} +{"bios": [{"created_at": "2025-02-07T17:33:57.168974+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-63f32dfe-19e2-4128-8016-5e1a668c6ed6 +Openstack-Request-Id: req-52124c55-501a-41ba-b7a6-8e5324af3b31 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": "2024-01-06T10:57:35.293305+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"}]}]} +{"bios": [{"created_at": "2025-02-07T17:33:57.168974+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-7520c634-2220-4336-a33a-aff52b75c2a4 +Openstack-Request-Id: req-39391770-5930-46b4-86a1-917c12de3171 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-06T10:57:35.366506+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"}]}} +{"FAKE_SETTING": {"created_at": "2025-02-07T17:33:57.275601+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-7520c634-2220-4336-a33a-aff52b75c2a4 +Openstack-Request-Id: req-39391770-5930-46b4-86a1-917c12de3171 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-06T10:57:35.366506+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"}]}} +{"FAKE_SETTING": {"created_at": "2025-02-07T17:33:57.275601+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-dd2c6a51-eb7e-4f6f-8b5a-e8e08e999fa7 +Openstack-Request-Id: req-98a9d6c6-1548-4649-aae6-b0528244945b 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-06T10:57:35.439788+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"}]}} +{"FAKE_SETTING": {"created_at": "2025-02-07T17:33:57.395806+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-dd2c6a51-eb7e-4f6f-8b5a-e8e08e999fa7 +Openstack-Request-Id: req-98a9d6c6-1548-4649-aae6-b0528244945b 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-06T10:57:35.439788+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"}]}} +{"FAKE_SETTING": {"created_at": "2025-02-07T17:33:57.395806+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-075425b9-f34a-4848-9904-b2c9e62dd107 +Openstack-Request-Id: req-b4665bd4-2777-4b5f-86ba-fc00488cc9a0 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-06T10:57:35.511677+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"}]}} +{"FAKE_SETTING": {"created_at": "2025-02-07T17:33:57.518328+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-075425b9-f34a-4848-9904-b2c9e62dd107 +Openstack-Request-Id: req-b4665bd4-2777-4b5f-86ba-fc00488cc9a0 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-06T10:57:35.511677+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"}]}} +{"FAKE_SETTING": {"created_at": "2025-02-07T17:33:57.518328+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-9cda9719-5e08-43a3-a1fa-d8c5a78ee518 +Openstack-Request-Id: req-496c2fb9-72f2-4f71-8192-0e6b192c51f0 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-9cda9719-5e08-43a3-a1fa-d8c5a78ee518 +Openstack-Request-Id: req-496c2fb9-72f2-4f71-8192-0e6b192c51f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -39703,276 +36970,350 @@ 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.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.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_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.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.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.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.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.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.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_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_262_nodes_allocation_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_262_nodes_allocation_get_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.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.test_snmp.SNMPClientTestCase.test_set_err_transport +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport ... 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.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.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.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.objects.test_node.TestNodeObject.test_refresh +ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh ... 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.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.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.objects.test_node.TestNodeObject.test_release +ironic.tests.unit.objects.test_node.TestNodeObject.test_release ... 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_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.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_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid ... 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.objects.test_node.TestNodeObject.test_reserve +ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve ... 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_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_244_conductors_hostname_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_244_conductors_hostname_get_reader ... ok -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-d0587350-cb32-4161-8bbe-80e2b6ca7f1e -X-Openstack-Ironic-Api-Maximum-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 +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.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.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly +ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly ... ok +GOT:{'node': {'uuid': '381c6b61-3ea4-46f4-a15c-42d55268e5f5', '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/381c6b61-3ea4-46f4-a15c-42d55268e5f5', 'rel': 'self'}, {'href': 'http://localhost/nodes/381c6b61-3ea4-46f4-a15c-42d55268e5f5', '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=882355d5-903d-4811-ac9f-2204fca90f7a {} +GOT:{'node': {'uuid': '882355d5-903d-4811-ac9f-2204fca90f7a', '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/882355d5-903d-4811-ac9f-2204fca90f7a', 'rel': 'self'}, {'href': 'http://localhost/nodes/882355d5-903d-4811-ac9f-2204fca90f7a', '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=73de4445-09e3-4adf-ab35-2f0485c347d8 {} +GOT:{'node': {'uuid': '73de4445-09e3-4adf-ab35-2f0485c347d8', '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/73de4445-09e3-4adf-ab35-2f0485c347d8', 'rel': 'self'}, {'href': 'http://localhost/nodes/73de4445-09e3-4adf-ab35-2f0485c347d8', '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': '22f02f0e-a305-49d7-8346-3965adbf5a68', '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/22f02f0e-a305-49d7-8346-3965adbf5a68', 'rel': 'self'}, {'href': 'http://localhost/nodes/22f02f0e-a305-49d7-8346-3965adbf5a68', '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=f1e9498a-8449-4b48-86e2-4ef6c0115a02 {} +GOT:{'node': {'uuid': 'f1e9498a-8449-4b48-86e2-4ef6c0115a02', '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/f1e9498a-8449-4b48-86e2-4ef6c0115a02', 'rel': 'self'}, {'href': 'http://localhost/nodes/f1e9498a-8449-4b48-86e2-4ef6c0115a02', '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-5b441811-1140-475d-b955-07de6369f72c +Openstack-Request-Id: req-e15d482d-9289-449a-809f-eaac76d152f0 X-Openstack-Ironic-Api-Maximum-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 +{"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-9f21bdce-27e2-4e61-b06b-9ea88db9de4a +Openstack-Request-Id: req-67740d0c-eed2-4db2-9345-baaea968fa0c X-Openstack-Ironic-Api-Maximum-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\": \"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-d710fc4c-d8a2-4f51-9646-5f930f72cd5b +Openstack-Request-Id: req-24166bc2-931e-49e7-b312-b25dcda6e214 X-Openstack-Ironic-Api-Maximum-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.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=c2f36f2f-96e7-402e-862a-4f5b2c1b7646 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-eabaff25-af48-4302-bc0a-0e26068ed438 +Openstack-Request-Id: req-41bda0cb-984e-4bea-88b9-b44eae998572 X-Openstack-Ironic-Api-Maximum-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 {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c7f3e274-a5bb-41e1-9ab3-6d13ec578089 -X-Openstack-Ironic-Api-Maximum-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": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +DELETE: /v1/ +GOT:Response: 405 Method Not Allowed Content-Type: application/json -Openstack-Request-Id: req-58a219ab-95bd-4fca-9b2d-cae02ea0ec0a +Openstack-Request-Id: req-339df1d0-c5d2-4c70-8298-abb6f41320e7 X-Openstack-Ironic-Api-Maximum-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 +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}"} +{'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_node.TestNodeObject.test_save +ironic.tests.unit.objects.test_node.TestNodeObject.test_save ... 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.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.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.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.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.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_244_conductors_hostname_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_244_conductors_hostname_get_reader ... 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.objects.test_node.TestNodeObject.test_save_truncated +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_truncated ... 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.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.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_265_nodes_allocation_delete_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_265_nodes_allocation_delete_member ... 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.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi ... 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.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.TestNodeObject.test_save_with_conductor_group +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group ... 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.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.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.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.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.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.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.drivers.modules.network.test_flat.TestFlatInterface.test_validate +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate ... 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.objects.test_node.TestNodeObject.test_save_with_traits +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_traits ... ok +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7f537ca2-2163-4b93-9bc4-dd0345b3b3cd +Openstack-Request-Id: req-784d7466-0e2b-4f86-9c04-db3527c02532 X-Openstack-Ironic-Api-Maximum-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:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test +DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-5e571e09-42d3-4a1d-a07a-528253376716 +Openstack-Request-Id: req-9459f3ef-468b-4b79-ab1a-ba74c3e0d105 X-Openstack-Ironic-Api-Maximum-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:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-da02840c-f7f3-4a50-bef4-76b5c4e2002f +Openstack-Request-Id: req-9459f3ef-468b-4b79-ab1a-ba74c3e0d105 X-Openstack-Ironic-Api-Maximum-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:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test +DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-969cadc5-d166-4f2c-9691-7a623c33aeba +Openstack-Request-Id: req-624ca692-f1a7-472b-8141-94d7287e0502 X-Openstack-Ironic-Api-Maximum-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:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-13641aab-c1bb-44b7-8d8e-aa1e81387b14 +Openstack-Request-Id: req-624ca692-f1a7-472b-8141-94d7287e0502 X-Openstack-Ironic-Api-Maximum-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:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test +DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6bd3526d-ad62-47ec-988b-d308761e7612 +Openstack-Request-Id: req-b2fc2836-20f4-46d6-bc3d-348c87843b12 X-Openstack-Ironic-Api-Maximum-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:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-bc7f0fb2-6899-48df-a6e1-e85f4639456a +Openstack-Request-Id: req-b2fc2836-20f4-46d6-bc3d-348c87843b12 X-Openstack-Ironic-Api-Maximum-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 {} -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_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.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.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.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.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.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.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_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 -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 +{"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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test +DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-4ce433a8-5de9-42b2-bf3d-616e891e986d +Openstack-Request-Id: req-99a19dca-5a08-4d14-906e-9e3da676f646 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +{"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-4ce433a8-5de9-42b2-bf3d-616e891e986d +Openstack-Request-Id: req-99a19dca-5a08-4d14-906e-9e3da676f646 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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/traits +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f416e518-0c4a-4a9f-97f8-046664212c57 +Openstack-Request-Id: req-84d2a356-4d9c-432b-9076-05d46c39f3dd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"traits": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f416e518-0c4a-4a9f-97f8-046664212c57 +Openstack-Request-Id: req-84d2a356-4d9c-432b-9076-05d46c39f3dd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 -GET: /v1/nodes {} +{"traits": []} +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-265f5148-9b2c-4153-81f5-c4b2fe72ebb9 +Openstack-Request-Id: req-a1dc4556-f3d9-4f6b-b3eb-81d4050bc6b9 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": "9639abdf-a47f-4877-9d4e-10d83cd2161b", "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"}]}]} +{"traits": []} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-265f5148-9b2c-4153-81f5-c4b2fe72ebb9 +Openstack-Request-Id: req-a1dc4556-f3d9-4f6b-b3eb-81d4050bc6b9 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": "9639abdf-a47f-4877-9d4e-10d83cd2161b", "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 +{"traits": []} +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-97ebfa68-52f5-467d-bbff-8dc37f389c0c +Openstack-Request-Id: req-eaeedc3e-26fa-4a99-b5eb-68345b52ece7 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": "2ef0498e-0a64-4c3e-9f61-1ba2f888f962", "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 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-97ebfa68-52f5-467d-bbff-8dc37f389c0c +Openstack-Request-Id: req-eaeedc3e-26fa-4a99-b5eb-68345b52ece7 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": "2ef0498e-0a64-4c3e-9f61-1ba2f888f962", "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 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits +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-e0faa63d-5288-496b-b646-c8306404734a +Openstack-Request-Id: req-47aba87b-bb46-4244-bce9-ce79f2b22fc5 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": "8495178a-826c-4836-b938-54171fee9d3b", "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}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-e0faa63d-5288-496b-b646-c8306404734a +Openstack-Request-Id: req-47aba87b-bb46-4244-bce9-ce79f2b22fc5 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": "8495178a-826c-4836-b938-54171fee9d3b", "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.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.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_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.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_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.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.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.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_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.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.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 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits +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.objects.test_node.TestNodeObject.test_touch_provisioning +ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning ... 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.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.objects.test_node.TestNodeObject.test_update_with_invalid_properties +ironic.tests.unit.objects.test_node.TestNodeObject.test_update_with_invalid_properties ... ok +{'deploy_kernel': ('deploy_kernel', '/tmp/tmph80i922n/tmpeo7u3boe/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/deploy_kernel'), 'deploy_ramdisk': ('deploy_ramdisk', '/tmp/tmph80i922n/tmpeo7u3boe/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/deploy_ramdisk')} +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.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.network.test_flat.TestFlatInterface.test_validate_inspection +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-81cc3b7c-4748-4d8f-8028-a57e43beb61c +Openstack-Request-Id: req-3e1b28cb-dbf4-49ad-a9c5-f2dbfd54282e 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-81cc3b7c-4748-4d8f-8028-a57e43beb61c +Openstack-Request-Id: req-3e1b28cb-dbf4-49ad-a9c5-f2dbfd54282e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -39981,14 +37322,14 @@ GET: /v1/conductors {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a9568d45-dab6-49fe-bab1-635c4066b90f +Openstack-Request-Id: req-5955292a-7816-4c80-83e9-0b462630afe6 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-a9568d45-dab6-49fe-bab1-635c4066b90f +Openstack-Request-Id: req-5955292a-7816-4c80-83e9-0b462630afe6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -39997,62 +37338,62 @@ GET: /v1/conductors/test-conductor-node {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-573050fe-f577-41cc-a6de-8581d7a4891d +Openstack-Request-Id: req-7b700a6a-1ab3-4cb8-a2e8-a7d86a24a76f 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": "2024-01-06T10:57:35.787023+00:00", "updated_at": "2024-01-06T10:57:35.788219+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": "2025-02-07T17:33:57.950759+00:00", "updated_at": "2025-02-07T17:33:57.951906+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-573050fe-f577-41cc-a6de-8581d7a4891d +Openstack-Request-Id: req-7b700a6a-1ab3-4cb8-a2e8-a7d86a24a76f 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": "2024-01-06T10:57:35.787023+00:00", "updated_at": "2024-01-06T10:57:35.788219+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": "2025-02-07T17:33:57.950759+00:00", "updated_at": "2025-02-07T17:33:57.951906+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-ff54477e-55f5-4ef7-b2f3-991c577cf85c +Openstack-Request-Id: req-08deb0af-9f5d-4496-ab97-306b4733deea 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": "2024-01-06T10:57:35.855581+00:00", "updated_at": "2024-01-06T10:57:35.856796+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": "2025-02-07T17:33:58.074374+00:00", "updated_at": "2025-02-07T17:33:58.075450+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-ff54477e-55f5-4ef7-b2f3-991c577cf85c +Openstack-Request-Id: req-08deb0af-9f5d-4496-ab97-306b4733deea 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": "2024-01-06T10:57:35.855581+00:00", "updated_at": "2024-01-06T10:57:35.856796+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": "2025-02-07T17:33:58.074374+00:00", "updated_at": "2025-02-07T17:33:58.075450+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-f9af3b49-d7bd-4874-a5f8-beaea98042d7 +Openstack-Request-Id: req-b63dcb1e-66ff-4b6b-9d58-279fbdddaf6d 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": "2024-01-06T10:57:35.929877+00:00", "updated_at": "2024-01-06T10:57:35.931201+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": "2025-02-07T17:33:58.167090+00:00", "updated_at": "2025-02-07T17:33:58.168277+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-f9af3b49-d7bd-4874-a5f8-beaea98042d7 +Openstack-Request-Id: req-b63dcb1e-66ff-4b6b-9d58-279fbdddaf6d 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": "2024-01-06T10:57:35.929877+00:00", "updated_at": "2024-01-06T10:57:35.931201+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": "2025-02-07T17:33:58.167090+00:00", "updated_at": "2025-02-07T17:33:58.168277+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-6a4bc42f-549e-40be-8662-3108a316af2f +Openstack-Request-Id: req-104d6431-7043-4c8b-9706-3ca0dd1f962d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-6a4bc42f-549e-40be-8662-3108a316af2f +Openstack-Request-Id: req-104d6431-7043-4c8b-9706-3ca0dd1f962d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -40061,14 +37402,14 @@ POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-94ae502e-dba7-4f83-b51d-25e8e6d1395c +Openstack-Request-Id: req-259e9d71-6b91-412a-b970-0e8160d0f3a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-94ae502e-dba7-4f83-b51d-25e8e6d1395c +Openstack-Request-Id: req-259e9d71-6b91-412a-b970-0e8160d0f3a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -40077,170 +37418,179 @@ 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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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 +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-a8d11cd1-9c42-4010-a8fc-4b61e178f9f0 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-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-51ee64a5-7bf9-4c09-9182-b214924445f8 +Openstack-Request-Id: req-8bbc035d-8bf4-483c-ba23-42235d648e13 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": "5ae80967-239e-4f83-8bb4-c88612482da7", "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"}]}]} +{"uuid": "3daee2ac-801e-4f6b-8947-b94994083ea2", "created_at": "2025-02-07T17:33:57.733932+00:00", "updated_at": "2025-02-07T17:33:57.743768+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/3daee2ac-801e-4f6b-8947-b94994083ea2", "rel": "self"}, {"href": "http://localhost/allocations/3daee2ac-801e-4f6b-8947-b94994083ea2", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-51ee64a5-7bf9-4c09-9182-b214924445f8 +Openstack-Request-Id: req-8bbc035d-8bf4-483c-ba23-42235d648e13 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": "5ae80967-239e-4f83-8bb4-c88612482da7", "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 +{"uuid": "3daee2ac-801e-4f6b-8947-b94994083ea2", "created_at": "2025-02-07T17:33:57.733932+00:00", "updated_at": "2025-02-07T17:33:57.743768+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/3daee2ac-801e-4f6b-8947-b94994083ea2", "rel": "self"}, {"href": "http://localhost/allocations/3daee2ac-801e-4f6b-8947-b94994083ea2", "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-7d32c222-bd59-4b42-934d-df02abd84b31 +Openstack-Request-Id: req-cc917f14-a0d8-4646-87d5-85618521dd19 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": "63326414-8ead-4fc1-b877-d0f27cc9cee0", "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\": \"Resource could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7d32c222-bd59-4b42-934d-df02abd84b31 +Openstack-Request-Id: req-cc917f14-a0d8-4646-87d5-85618521dd19 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": "63326414-8ead-4fc1-b877-d0f27cc9cee0", "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\": \"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-5fa89415-694c-47a3-99a4-649af8889f91 +Openstack-Request-Id: req-975160b1-9e36-4c30-a580-2515878830fd 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": "574e22e1-253a-4d17-8842-2c137bdf56b5", "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"}]}]} +{"uuid": "da4ddeea-479b-4e87-adf6-a69a4120e9a2", "created_at": "2025-02-07T17:33:57.961572+00:00", "updated_at": "2025-02-07T17:33:57.972744+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/da4ddeea-479b-4e87-adf6-a69a4120e9a2", "rel": "self"}, {"href": "http://localhost/allocations/da4ddeea-479b-4e87-adf6-a69a4120e9a2", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-5fa89415-694c-47a3-99a4-649af8889f91 +Openstack-Request-Id: req-975160b1-9e36-4c30-a580-2515878830fd 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": "574e22e1-253a-4d17-8842-2c137bdf56b5", "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 +{"uuid": "da4ddeea-479b-4e87-adf6-a69a4120e9a2", "created_at": "2025-02-07T17:33:57.961572+00:00", "updated_at": "2025-02-07T17:33:57.972744+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/da4ddeea-479b-4e87-adf6-a69a4120e9a2", "rel": "self"}, {"href": "http://localhost/allocations/da4ddeea-479b-4e87-adf6-a69a4120e9a2", "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-c3ef185c-6f53-4dc7-be4d-ebd7bad383fc +Openstack-Request-Id: req-7890e8c5-bd9d-47b0-92d1-8951cc65ae62 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": "a276d261-2bcb-42e3-b65d-8c821993ad8e", "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}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c3ef185c-6f53-4dc7-be4d-ebd7bad383fc +Openstack-Request-Id: req-7890e8c5-bd9d-47b0-92d1-8951cc65ae62 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": "a276d261-2bcb-42e3-b65d-8c821993ad8e", "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}"} +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 -Openstack-Request-Id: req-fca72ef0-1233-4895-921d-19e00d98da64 +Openstack-Request-Id: req-bb065e68-f937-4e5c-bc54-4e4420d9be78 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": "fe6fd21f-4fc9-4fa3-a709-9d17d4918da8", "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 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-fca72ef0-1233-4895-921d-19e00d98da64 +Openstack-Request-Id: req-bb065e68-f937-4e5c-bc54-4e4420d9be78 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": "fe6fd21f-4fc9-4fa3-a709-9d17d4918da8", "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 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-a0e80de6-b772-4f41-aaf9-39a5c0dad454 +Openstack-Request-Id: req-02ab2b95-4fbf-4d43-81a0-dca072eae08e 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\": \"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-a0e80de6-b772-4f41-aaf9-39a5c0dad454 +Openstack-Request-Id: req-02ab2b95-4fbf-4d43-81a0-dca072eae08e 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 {} -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.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_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.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.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.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_fail -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_fail ... 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.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.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.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_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.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 +{"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.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.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_268_deploy_templates_post_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_268_deploy_templates_post_member ... 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.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.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.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.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.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.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.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.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.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.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_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.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.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_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.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.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.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.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_271_deploy_templates_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_271_deploy_templates_get_member ... 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.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.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.redfish.test_inspect.RedfishInspectTestCase.test_get_pxe_port_macs +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_pxe_port_macs ... ok GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d0d228fd-c83f-464f-b66a-d3c142bb4a6e +Openstack-Request-Id: req-c294d96d-e4e6-47d8-9216-27e9333bfed3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-d0d228fd-c83f-464f-b66a-d3c142bb4a6e +Openstack-Request-Id: req-c294d96d-e4e6-47d8-9216-27e9333bfed3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -40249,724 +37599,676 @@ GET: /v1/allocations {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9105f097-a828-4dfc-8fa4-73087bbb6e00 +Openstack-Request-Id: req-341aed2b-fff2-4dc0-8cdf-b351123b5d9d 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": "235bd500-c831-4c53-9c3d-01de0b0ec6d4", "created_at": "2024-01-06T10:57:36.270217+00:00", "updated_at": "2024-01-06T10:57:36.279546+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/235bd500-c831-4c53-9c3d-01de0b0ec6d4", "rel": "self"}, {"href": "http://localhost/allocations/235bd500-c831-4c53-9c3d-01de0b0ec6d4", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} +{"allocations": [{"uuid": "e7d4b94e-ad1b-44ca-9263-17fa0cd099c4", "created_at": "2025-02-07T17:33:58.624313+00:00", "updated_at": "2025-02-07T17:33:58.633934+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/e7d4b94e-ad1b-44ca-9263-17fa0cd099c4", "rel": "self"}, {"href": "http://localhost/allocations/e7d4b94e-ad1b-44ca-9263-17fa0cd099c4", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9105f097-a828-4dfc-8fa4-73087bbb6e00 +Openstack-Request-Id: req-341aed2b-fff2-4dc0-8cdf-b351123b5d9d 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": "235bd500-c831-4c53-9c3d-01de0b0ec6d4", "created_at": "2024-01-06T10:57:36.270217+00:00", "updated_at": "2024-01-06T10:57:36.279546+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/235bd500-c831-4c53-9c3d-01de0b0ec6d4", "rel": "self"}, {"href": "http://localhost/allocations/235bd500-c831-4c53-9c3d-01de0b0ec6d4", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} +{"allocations": [{"uuid": "e7d4b94e-ad1b-44ca-9263-17fa0cd099c4", "created_at": "2025-02-07T17:33:58.624313+00:00", "updated_at": "2025-02-07T17:33:58.633934+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/e7d4b94e-ad1b-44ca-9263-17fa0cd099c4", "rel": "self"}, {"href": "http://localhost/allocations/e7d4b94e-ad1b-44ca-9263-17fa0cd099c4", "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-27366acd-c931-4220-b299-8333dc945341 +Openstack-Request-Id: req-bbc0476d-fe6b-485c-a5a0-ee9aa6332e40 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": "d23262bc-c401-47d6-84dd-288cca8df149", "created_at": "2024-01-06T10:57:36.345358+00:00", "updated_at": "2024-01-06T10:57:36.354684+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/d23262bc-c401-47d6-84dd-288cca8df149", "rel": "self"}, {"href": "http://localhost/allocations/d23262bc-c401-47d6-84dd-288cca8df149", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} +{"allocations": [{"uuid": "5487e917-ad4a-46a7-a295-9b18db74bf4b", "created_at": "2025-02-07T17:33:58.740228+00:00", "updated_at": "2025-02-07T17:33:58.751904+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/5487e917-ad4a-46a7-a295-9b18db74bf4b", "rel": "self"}, {"href": "http://localhost/allocations/5487e917-ad4a-46a7-a295-9b18db74bf4b", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-27366acd-c931-4220-b299-8333dc945341 +Openstack-Request-Id: req-bbc0476d-fe6b-485c-a5a0-ee9aa6332e40 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": "d23262bc-c401-47d6-84dd-288cca8df149", "created_at": "2024-01-06T10:57:36.345358+00:00", "updated_at": "2024-01-06T10:57:36.354684+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/d23262bc-c401-47d6-84dd-288cca8df149", "rel": "self"}, {"href": "http://localhost/allocations/d23262bc-c401-47d6-84dd-288cca8df149", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} +{"allocations": [{"uuid": "5487e917-ad4a-46a7-a295-9b18db74bf4b", "created_at": "2025-02-07T17:33:58.740228+00:00", "updated_at": "2025-02-07T17:33:58.751904+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/5487e917-ad4a-46a7-a295-9b18db74bf4b", "rel": "self"}, {"href": "http://localhost/allocations/5487e917-ad4a-46a7-a295-9b18db74bf4b", "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-a8de1399-9714-46b9-afe3-9bc580684d06 +Openstack-Request-Id: req-726ddeb7-721e-40f7-b588-912c78a4c2f6 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": "29303d43-5c83-4556-be32-e54c96164eaf", "created_at": "2024-01-06T10:57:36.417954+00:00", "updated_at": "2024-01-06T10:57:36.427470+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/29303d43-5c83-4556-be32-e54c96164eaf", "rel": "self"}, {"href": "http://localhost/allocations/29303d43-5c83-4556-be32-e54c96164eaf", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} +{"allocations": [{"uuid": "8b35d791-e0dd-466b-9c37-421674a983a8", "created_at": "2025-02-07T17:33:58.819246+00:00", "updated_at": "2025-02-07T17:33:58.828885+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/8b35d791-e0dd-466b-9c37-421674a983a8", "rel": "self"}, {"href": "http://localhost/allocations/8b35d791-e0dd-466b-9c37-421674a983a8", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a8de1399-9714-46b9-afe3-9bc580684d06 +Openstack-Request-Id: req-726ddeb7-721e-40f7-b588-912c78a4c2f6 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": "29303d43-5c83-4556-be32-e54c96164eaf", "created_at": "2024-01-06T10:57:36.417954+00:00", "updated_at": "2024-01-06T10:57:36.427470+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/29303d43-5c83-4556-be32-e54c96164eaf", "rel": "self"}, {"href": "http://localhost/allocations/29303d43-5c83-4556-be32-e54c96164eaf", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} -API ACL Testing Path get /v1/allocations/acc8f451-ab8d-4dc6-b420-6ed64b8c38da -GET: /v1/allocations/acc8f451-ab8d-4dc6-b420-6ed64b8c38da {} +{"allocations": [{"uuid": "8b35d791-e0dd-466b-9c37-421674a983a8", "created_at": "2025-02-07T17:33:58.819246+00:00", "updated_at": "2025-02-07T17:33:58.828885+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/8b35d791-e0dd-466b-9c37-421674a983a8", "rel": "self"}, {"href": "http://localhost/allocations/8b35d791-e0dd-466b-9c37-421674a983a8", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} +API ACL Testing Path get /v1/allocations/e05ed0b8-1fc1-4fed-bd97-3a844204647a +GET: /v1/allocations/e05ed0b8-1fc1-4fed-bd97-3a844204647a {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b3fa82f5-61c4-4513-937d-9d9825e268d2 +Openstack-Request-Id: req-012fe3ad-25d1-4840-8f88-7e644ca5685e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "acc8f451-ab8d-4dc6-b420-6ed64b8c38da", "created_at": "2024-01-06T10:57:36.491846+00:00", "updated_at": "2024-01-06T10:57:36.501445+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/acc8f451-ab8d-4dc6-b420-6ed64b8c38da", "rel": "self"}, {"href": "http://localhost/allocations/acc8f451-ab8d-4dc6-b420-6ed64b8c38da", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +{"uuid": "e05ed0b8-1fc1-4fed-bd97-3a844204647a", "created_at": "2025-02-07T17:33:58.921260+00:00", "updated_at": "2025-02-07T17:33:58.931673+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/e05ed0b8-1fc1-4fed-bd97-3a844204647a", "rel": "self"}, {"href": "http://localhost/allocations/e05ed0b8-1fc1-4fed-bd97-3a844204647a", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b3fa82f5-61c4-4513-937d-9d9825e268d2 +Openstack-Request-Id: req-012fe3ad-25d1-4840-8f88-7e644ca5685e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "acc8f451-ab8d-4dc6-b420-6ed64b8c38da", "created_at": "2024-01-06T10:57:36.491846+00:00", "updated_at": "2024-01-06T10:57:36.501445+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/acc8f451-ab8d-4dc6-b420-6ed64b8c38da", "rel": "self"}, {"href": "http://localhost/allocations/acc8f451-ab8d-4dc6-b420-6ed64b8c38da", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -API ACL Testing Path get /v1/allocations/46ee4e54-5889-4745-82cd-36bd98c989e8 -GET: /v1/allocations/46ee4e54-5889-4745-82cd-36bd98c989e8 {} +{"uuid": "e05ed0b8-1fc1-4fed-bd97-3a844204647a", "created_at": "2025-02-07T17:33:58.921260+00:00", "updated_at": "2025-02-07T17:33:58.931673+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/e05ed0b8-1fc1-4fed-bd97-3a844204647a", "rel": "self"}, {"href": "http://localhost/allocations/e05ed0b8-1fc1-4fed-bd97-3a844204647a", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +API ACL Testing Path get /v1/allocations/d1067095-31ce-4354-8bfc-964e7c934139 +GET: /v1/allocations/d1067095-31ce-4354-8bfc-964e7c934139 {} 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.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.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.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.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.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.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.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 -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-83a49d1c-8613-448b-b7bf-5c541905eb93 -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": "2024-01-06T10:57:36.455179+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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 +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.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.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 +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-83a49d1c-8613-448b-b7bf-5c541905eb93 +Location: http://localhost/v1/deploy_templates/aa5f8fab-1dcf-40b2-a780-d0dca036f10b +Openstack-Request-Id: req-1af7c227-974d-460a-a63c-96c0cc6c7f0c 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": "2024-01-06T10:57:36.455179+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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 +{"uuid": "aa5f8fab-1dcf-40b2-a780-d0dca036f10b", "created_at": "2025-02-07T17:33:58.571824+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/aa5f8fab-1dcf-40b2-a780-d0dca036f10b", "rel": "self"}, {"href": "http://localhost/deploy_templates/aa5f8fab-1dcf-40b2-a780-d0dca036f10b", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]} +ACL Test GOT Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-008a2e6c-c884-4129-b901-1608b81bef2b +Location: http://localhost/v1/deploy_templates/aa5f8fab-1dcf-40b2-a780-d0dca036f10b +Openstack-Request-Id: req-1af7c227-974d-460a-a63c-96c0cc6c7f0c X-Openstack-Ironic-Api-Maximum-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": "aa5f8fab-1dcf-40b2-a780-d0dca036f10b", "created_at": "2025-02-07T17:33:58.571824+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/aa5f8fab-1dcf-40b2-a780-d0dca036f10b", "rel": "self"}, {"href": "http://localhost/deploy_templates/aa5f8fab-1dcf-40b2-a780-d0dca036f10b", "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-008a2e6c-c884-4129-b901-1608b81bef2b +Openstack-Request-Id: req-461c892e-71e0-49ff-b06f-1b88a9d80eb6 X-Openstack-Ironic-Api-Maximum-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 {} -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.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.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.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_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.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.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_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.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.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.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_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_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 -GOT:Response: 404 Not Found +{"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-56532849-448b-4bea-bd50-137a9921083b +Openstack-Request-Id: req-461c892e-71e0-49ff-b06f-1b88a9d80eb6 X-Openstack-Ironic-Api-Maximum-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: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-5f6a6759-4089-4539-9340-78d52e48867c +Openstack-Request-Id: req-449847aa-a584-4b11-a31b-3e92539e66de X-Openstack-Ironic-Api-Maximum-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:deploy_template:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9464b8eb-04a0-422c-ba0a-be1244821f49 +Openstack-Request-Id: req-449847aa-a584-4b11-a31b-3e92539e66de X-Openstack-Ironic-Api-Maximum-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: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-3c202ba1-5fca-42c7-b8a7-8e19c9b26f07 +Openstack-Request-Id: req-7132a781-2389-4ec8-b15f-1749d07c8a34 X-Openstack-Ironic-Api-Maximum-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 +{"deploy_templates": [{"uuid": "78a56d91-ed1c-4bec-960c-4b27c93b4bb5", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/78a56d91-ed1c-4bec-960c-4b27c93b4bb5", "rel": "self"}, {"href": "http://localhost/deploy_templates/78a56d91-ed1c-4bec-960c-4b27c93b4bb5", "rel": "bookmark"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a588fbfc-89b6-4d85-a6b9-90b3d584ce8d +Openstack-Request-Id: req-7132a781-2389-4ec8-b15f-1749d07c8a34 X-Openstack-Ironic-Api-Maximum-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 +{"deploy_templates": [{"uuid": "78a56d91-ed1c-4bec-960c-4b27c93b4bb5", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/78a56d91-ed1c-4bec-960c-4b27c93b4bb5", "rel": "self"}, {"href": "http://localhost/deploy_templates/78a56d91-ed1c-4bec-960c-4b27c93b4bb5", "rel": "bookmark"}]}]} +API ACL Testing Path get /v1/deploy_templates +GET: /v1/deploy_templates {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c8d40b84-2457-4940-a2c8-12d4da689a44 +Openstack-Request-Id: req-56d8a8f4-f927-4d19-8cb2-7e5a7363323c X-Openstack-Ironic-Api-Maximum-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: 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-b8e3c91d-45d7-4dc7-a5a4-77a935ab0c73 +Openstack-Request-Id: req-56d8a8f4-f927-4d19-8cb2-7e5a7363323c X-Openstack-Ironic-Api-Maximum-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: 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 +GET: /v1/deploy_templates {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c224758a-c955-4f58-89e2-1bc73df43417 +Openstack-Request-Id: req-42dc65a3-2000-40a4-8a80-b5d82235d2e3 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"deploy_templates": [{"uuid": "6c7d580b-f780-433f-a4bd-ee5d53114f15", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/6c7d580b-f780-433f-a4bd-ee5d53114f15", "rel": "self"}, {"href": "http://localhost/deploy_templates/6c7d580b-f780-433f-a4bd-ee5d53114f15", "rel": "bookmark"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f52107ca-a54a-4c3e-88ef-873c1543b304 +Openstack-Request-Id: req-42dc65a3-2000-40a4-8a80-b5d82235d2e3 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"deploy_templates": [{"uuid": "6c7d580b-f780-433f-a4bd-ee5d53114f15", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/6c7d580b-f780-433f-a4bd-ee5d53114f15", "rel": "self"}, {"href": "http://localhost/deploy_templates/6c7d580b-f780-433f-a4bd-ee5d53114f15", "rel": "bookmark"}]}]} +API ACL Testing Path get /v1/deploy_templates/83a23d71-4e04-424a-9833-fb350db19704 +GET: /v1/deploy_templates/83a23d71-4e04-424a-9833-fb350db19704 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f04bf3ab-74de-4c39-8294-56f043f87224 +Openstack-Request-Id: req-3b3723bf-2c76-4dfd-8d81-2aa2f874fc80 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"uuid": "83a23d71-4e04-424a-9833-fb350db19704", "created_at": "2025-02-07T17:33:59.156734+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/83a23d71-4e04-424a-9833-fb350db19704", "rel": "self"}, {"href": "http://localhost/deploy_templates/83a23d71-4e04-424a-9833-fb350db19704", "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_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.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.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.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.VendorPassthruTestCase.test_vendor_passthru_async +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async ... 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.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.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.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_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.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.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_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.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.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.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.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.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.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.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.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_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.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.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.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.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 +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-db929950-9644-43f1-93b5-ab88bc8f0175 +Openstack-Request-Id: req-bf879c03-e166-4ff5-b762-582692580c1f X-Openstack-Ironic-Api-Maximum-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: 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-2310f32d-fa09-4a57-b825-f5df9080188c +Openstack-Request-Id: req-bf879c03-e166-4ff5-b762-582692580c1f X-Openstack-Ironic-Api-Maximum-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: 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/traits +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-19ba52c2-dd8b-47c7-ab58-84d24ec96176 +Openstack-Request-Id: req-ef78bdbd-1e76-40f2-a5a0-777a35ad0bb1 X-Openstack-Ironic-Api-Maximum-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: 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-e5fb16bd-b158-4d3f-9e26-18556fdcb788 +Openstack-Request-Id: req-ef78bdbd-1e76-40f2-a5a0-777a35ad0bb1 X-Openstack-Ironic-Api-Maximum-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'} -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.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.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.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 -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 put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits +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-bd297cd0-1679-4384-a94b-ea0c9ade6087 +Openstack-Request-Id: req-7469024c-49e1-4d6f-9094-9bd5a6e5953e 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-06T10:57:36.615332+00:00", "updated_at": "2024-01-06T10:57:36.626070+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": "742c553e-0f5d-4ef3-a317-460897f07c7e", "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": "742c553e-0f5d-4ef3-a317-460897f07c7e", "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\": \"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-bd297cd0-1679-4384-a94b-ea0c9ade6087 +Openstack-Request-Id: req-7469024c-49e1-4d6f-9094-9bd5a6e5953e 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-06T10:57:36.615332+00:00", "updated_at": "2024-01-06T10:57:36.626070+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": "742c553e-0f5d-4ef3-a317-460897f07c7e", "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": "742c553e-0f5d-4ef3-a317-460897f07c7e", "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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits +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-f5612df1-2f3a-4065-b8ca-de4cbe85d1f1 +Openstack-Request-Id: req-51dafad7-41ab-4df6-8d3d-192bf4c80a4c X-Openstack-Ironic-Api-Maximum-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-f5612df1-2f3a-4065-b8ca-de4cbe85d1f1 +Openstack-Request-Id: req-51dafad7-41ab-4df6-8d3d-192bf4c80a4c X-Openstack-Ironic-Api-Maximum-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:traits:set\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits +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-88be2efa-0a2f-4aa8-b5d9-1bce3a5b575b +Openstack-Request-Id: req-4942b11b-c2cd-4368-87e2-5009ef94b70c X-Openstack-Ironic-Api-Maximum-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.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.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.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_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.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.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 -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-88be2efa-0a2f-4aa8-b5d9-1bce3a5b575b +Openstack-Request-Id: req-4942b11b-c2cd-4368-87e2-5009ef94b70c X-Openstack-Ironic-Api-Maximum-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:traits:set\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits +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-0fef0561-9b16-4994-9132-d102f9fa7588 +Openstack-Request-Id: req-84968aad-e79b-4899-9ce7-06245705b0fd 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": "2024-01-06T10:57:36.824786+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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 +{"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-0fef0561-9b16-4994-9132-d102f9fa7588 +Openstack-Request-Id: req-84968aad-e79b-4899-9ce7-06245705b0fd 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": "2024-01-06T10:57:36.824786+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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.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.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.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.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.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.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_inspect.IloInspectTestCase.test_validate -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate ... 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.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.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_fail -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_fail ... ok -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"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 +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-35527e55-a3c0-454b-bd80-ef2ce6f9d6cd +Openstack-Request-Id: req-f6bf9f1f-9455-4c9d-915f-f4b4227fda4f 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-06T10:57:36.915771+00:00", "updated_at": "2024-01-06T10:57:36.926710+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": "db4c68df-50ce-4f5b-92a7-b668a26cea44", "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": "db4c68df-50ce-4f5b-92a7-b668a26cea44", "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 -** Redacted - requires baremetal:node:get:reservation permission. ** -driver_internal_info -{'content': '** Redacted - Requires baremetal:node:get:driver_internal_info permission. **'} -driver_info -{'content': '** Redacted - requires baremetal:node:get:driver_info permission. **'} -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-35527e55-a3c0-454b-bd80-ef2ce6f9d6cd +Openstack-Request-Id: req-f6bf9f1f-9455-4c9d-915f-f4b4227fda4f 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-06T10:57:36.915771+00:00", "updated_at": "2024-01-06T10:57:36.926710+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": "db4c68df-50ce-4f5b-92a7-b668a26cea44", "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": "db4c68df-50ce-4f5b-92a7-b668a26cea44", "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\": \"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 +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-069b7be2-fdb2-4e8e-8c20-6b60b47c914d +Openstack-Request-Id: req-7f06a126-ec5f-4611-9081-72984b35f3d8 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": "2024-01-06T10:57:36.983469+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-06T10:57:36.995385+00:00", "updated_at": "2024-01-06T10:57:37.006169+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": "7a0a5322-83a1-4752-bc16-f167a893fb34", "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": "7a0a5322-83a1-4752-bc16-f167a893fb34", "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.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.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 -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-069b7be2-fdb2-4e8e-8c20-6b60b47c914d +Openstack-Request-Id: req-7f06a126-ec5f-4611-9081-72984b35f3d8 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": "2024-01-06T10:57:36.983469+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-06T10:57:36.995385+00:00", "updated_at": "2024-01-06T10:57:37.006169+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": "7a0a5322-83a1-4752-bc16-f167a893fb34", "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": "7a0a5322-83a1-4752-bc16-f167a893fb34", "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.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.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.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.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.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.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.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_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.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__cleanup_vmedia_boot_ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__cleanup_vmedia_boot_ok ... ok +{"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.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.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 GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-cfe01b59-67ea-4638-b147-e374329f832a +Openstack-Request-Id: req-0d938977-3268-44d6-9d69-c5bd9ec05eba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "46ee4e54-5889-4745-82cd-36bd98c989e8", "created_at": "2024-01-06T10:57:36.567834+00:00", "updated_at": "2024-01-06T10:57:36.577611+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/46ee4e54-5889-4745-82cd-36bd98c989e8", "rel": "self"}, {"href": "http://localhost/allocations/46ee4e54-5889-4745-82cd-36bd98c989e8", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +{"uuid": "d1067095-31ce-4354-8bfc-964e7c934139", "created_at": "2025-02-07T17:33:59.014305+00:00", "updated_at": "2025-02-07T17:33:59.025231+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/d1067095-31ce-4354-8bfc-964e7c934139", "rel": "self"}, {"href": "http://localhost/allocations/d1067095-31ce-4354-8bfc-964e7c934139", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-cfe01b59-67ea-4638-b147-e374329f832a +Openstack-Request-Id: req-0d938977-3268-44d6-9d69-c5bd9ec05eba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "46ee4e54-5889-4745-82cd-36bd98c989e8", "created_at": "2024-01-06T10:57:36.567834+00:00", "updated_at": "2024-01-06T10:57:36.577611+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/46ee4e54-5889-4745-82cd-36bd98c989e8", "rel": "self"}, {"href": "http://localhost/allocations/46ee4e54-5889-4745-82cd-36bd98c989e8", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -API ACL Testing Path get /v1/allocations/f9359734-4890-4326-8c54-47ccc548c38f -GET: /v1/allocations/f9359734-4890-4326-8c54-47ccc548c38f {} +{"uuid": "d1067095-31ce-4354-8bfc-964e7c934139", "created_at": "2025-02-07T17:33:59.014305+00:00", "updated_at": "2025-02-07T17:33:59.025231+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/d1067095-31ce-4354-8bfc-964e7c934139", "rel": "self"}, {"href": "http://localhost/allocations/d1067095-31ce-4354-8bfc-964e7c934139", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +API ACL Testing Path get /v1/allocations/83aafcfb-6713-44b5-9bf1-4bfd7533e5b9 +GET: /v1/allocations/83aafcfb-6713-44b5-9bf1-4bfd7533e5b9 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9df29b0a-5b88-40c4-9468-5f9381b75882 +Openstack-Request-Id: req-4f25dd21-d970-4fb3-a446-09a9cf1d2185 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "f9359734-4890-4326-8c54-47ccc548c38f", "created_at": "2024-01-06T10:57:36.640866+00:00", "updated_at": "2024-01-06T10:57:36.650491+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/f9359734-4890-4326-8c54-47ccc548c38f", "rel": "self"}, {"href": "http://localhost/allocations/f9359734-4890-4326-8c54-47ccc548c38f", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +{"uuid": "83aafcfb-6713-44b5-9bf1-4bfd7533e5b9", "created_at": "2025-02-07T17:33:59.103108+00:00", "updated_at": "2025-02-07T17:33:59.112952+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/83aafcfb-6713-44b5-9bf1-4bfd7533e5b9", "rel": "self"}, {"href": "http://localhost/allocations/83aafcfb-6713-44b5-9bf1-4bfd7533e5b9", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9df29b0a-5b88-40c4-9468-5f9381b75882 +Openstack-Request-Id: req-4f25dd21-d970-4fb3-a446-09a9cf1d2185 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "f9359734-4890-4326-8c54-47ccc548c38f", "created_at": "2024-01-06T10:57:36.640866+00:00", "updated_at": "2024-01-06T10:57:36.650491+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/f9359734-4890-4326-8c54-47ccc548c38f", "rel": "self"}, {"href": "http://localhost/allocations/f9359734-4890-4326-8c54-47ccc548c38f", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -API ACL Testing Path patch /v1/allocations/a2d87020-1dda-4865-b8e6-b8d13e7bd094 -PATCH: /v1/allocations/a2d87020-1dda-4865-b8e6-b8d13e7bd094 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"uuid": "83aafcfb-6713-44b5-9bf1-4bfd7533e5b9", "created_at": "2025-02-07T17:33:59.103108+00:00", "updated_at": "2025-02-07T17:33:59.112952+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/83aafcfb-6713-44b5-9bf1-4bfd7533e5b9", "rel": "self"}, {"href": "http://localhost/allocations/83aafcfb-6713-44b5-9bf1-4bfd7533e5b9", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +API ACL Testing Path patch /v1/allocations/399163c8-8f3a-447f-829b-64c65e5b9271 +PATCH: /v1/allocations/399163c8-8f3a-447f-829b-64c65e5b9271 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b2bc7814-fe0c-4240-864b-4d1b77842815 +Openstack-Request-Id: req-53c7b945-e367-4e66-a856-65a198f166b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "a2d87020-1dda-4865-b8e6-b8d13e7bd094", "created_at": "2024-01-06T10:57:36.715195+00:00", "updated_at": "2024-01-06T10:57:36.767224+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/a2d87020-1dda-4865-b8e6-b8d13e7bd094", "rel": "self"}, {"href": "http://localhost/allocations/a2d87020-1dda-4865-b8e6-b8d13e7bd094", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +{"uuid": "399163c8-8f3a-447f-829b-64c65e5b9271", "created_at": "2025-02-07T17:33:59.179625+00:00", "updated_at": "2025-02-07T17:33:59.228268+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/399163c8-8f3a-447f-829b-64c65e5b9271", "rel": "self"}, {"href": "http://localhost/allocations/399163c8-8f3a-447f-829b-64c65e5b9271", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b2bc7814-fe0c-4240-864b-4d1b77842815 +Openstack-Request-Id: req-53c7b945-e367-4e66-a856-65a198f166b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "a2d87020-1dda-4865-b8e6-b8d13e7bd094", "created_at": "2024-01-06T10:57:36.715195+00:00", "updated_at": "2024-01-06T10:57:36.767224+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/a2d87020-1dda-4865-b8e6-b8d13e7bd094", "rel": "self"}, {"href": "http://localhost/allocations/a2d87020-1dda-4865-b8e6-b8d13e7bd094", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -API ACL Testing Path patch /v1/allocations/8a74c438-ce7e-4576-8ed4-e7f419935b59 -PATCH: /v1/allocations/8a74c438-ce7e-4576-8ed4-e7f419935b59 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"uuid": "399163c8-8f3a-447f-829b-64c65e5b9271", "created_at": "2025-02-07T17:33:59.179625+00:00", "updated_at": "2025-02-07T17:33:59.228268+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/399163c8-8f3a-447f-829b-64c65e5b9271", "rel": "self"}, {"href": "http://localhost/allocations/399163c8-8f3a-447f-829b-64c65e5b9271", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +API ACL Testing Path patch /v1/allocations/f5ceb09c-664e-42a1-93fe-7b1f0724561b +PATCH: /v1/allocations/f5ceb09c-664e-42a1-93fe-7b1f0724561b [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d6d60759-dd26-4af0-a6ab-ceab142f3317 +Openstack-Request-Id: req-1bdc26b5-89b9-42e3-bfae-244bbdabdc93 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "8a74c438-ce7e-4576-8ed4-e7f419935b59", "created_at": "2024-01-06T10:57:36.797043+00:00", "updated_at": "2024-01-06T10:57:36.847976+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/8a74c438-ce7e-4576-8ed4-e7f419935b59", "rel": "self"}, {"href": "http://localhost/allocations/8a74c438-ce7e-4576-8ed4-e7f419935b59", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +{"uuid": "f5ceb09c-664e-42a1-93fe-7b1f0724561b", "created_at": "2025-02-07T17:33:59.257056+00:00", "updated_at": "2025-02-07T17:33:59.303679+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/f5ceb09c-664e-42a1-93fe-7b1f0724561b", "rel": "self"}, {"href": "http://localhost/allocations/f5ceb09c-664e-42a1-93fe-7b1f0724561b", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d6d60759-dd26-4af0-a6ab-ceab142f3317 +Openstack-Request-Id: req-1bdc26b5-89b9-42e3-bfae-244bbdabdc93 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "8a74c438-ce7e-4576-8ed4-e7f419935b59", "created_at": "2024-01-06T10:57:36.797043+00:00", "updated_at": "2024-01-06T10:57:36.847976+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/8a74c438-ce7e-4576-8ed4-e7f419935b59", "rel": "self"}, {"href": "http://localhost/allocations/8a74c438-ce7e-4576-8ed4-e7f419935b59", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -API ACL Testing Path patch /v1/allocations/ad20972a-75b7-4862-87ff-77054bff7e14 -PATCH: /v1/allocations/ad20972a-75b7-4862-87ff-77054bff7e14 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"uuid": "f5ceb09c-664e-42a1-93fe-7b1f0724561b", "created_at": "2025-02-07T17:33:59.257056+00:00", "updated_at": "2025-02-07T17:33:59.303679+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/f5ceb09c-664e-42a1-93fe-7b1f0724561b", "rel": "self"}, {"href": "http://localhost/allocations/f5ceb09c-664e-42a1-93fe-7b1f0724561b", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +API ACL Testing Path patch /v1/allocations/292b2f99-4e15-4aed-ab7c-559958725dd9 +PATCH: /v1/allocations/292b2f99-4e15-4aed-ab7c-559958725dd9 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-160ddd05-0649-46df-ab6c-fb0815b312b7 +Openstack-Request-Id: req-64e0ccd4-1b24-44c5-b11f-318f7e3c6826 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-160ddd05-0649-46df-ab6c-fb0815b312b7 +Openstack-Request-Id: req-64e0ccd4-1b24-44c5-b11f-318f7e3c6826 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} 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.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.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.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.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.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.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.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.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.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_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_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.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.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.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 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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 +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-3b3723bf-2c76-4dfd-8d81-2aa2f874fc80 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "83a23d71-4e04-424a-9833-fb350db19704", "created_at": "2025-02-07T17:33:59.156734+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/83a23d71-4e04-424a-9833-fb350db19704", "rel": "self"}, {"href": "http://localhost/deploy_templates/83a23d71-4e04-424a-9833-fb350db19704", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +API ACL Testing Path get /v1/deploy_templates/cc125d14-0601-4fa2-b4a4-653b74893944 +GET: /v1/deploy_templates/cc125d14-0601-4fa2-b4a4-653b74893944 {} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-c343733f-f1b6-452a-a92c-8a7d55ad1f5c +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-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 +Content-Type: application/json +Openstack-Request-Id: req-c343733f-f1b6-452a-a92c-8a7d55ad1f5c +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-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/132f149d-b9c9-475d-b4ea-2ce22d9e9c82 +GET: /v1/deploy_templates/132f149d-b9c9-475d-b4ea-2ce22d9e9c82 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b17623df-4ad9-497a-8f09-fa0c9880fd3c +Openstack-Request-Id: req-576c28b2-46a0-41e4-b056-9c35a2dd1698 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-06T10:57:37.080833+00:00", "updated_at": "2024-01-06T10:57:37.091410+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": "c48033c4-5908-4e4b-a605-c681dee8ce6d", "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": "c48033c4-5908-4e4b-a605-c681dee8ce6d", "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": "132f149d-b9c9-475d-b4ea-2ce22d9e9c82", "created_at": "2025-02-07T17:33:59.310530+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/132f149d-b9c9-475d-b4ea-2ce22d9e9c82", "rel": "self"}, {"href": "http://localhost/deploy_templates/132f149d-b9c9-475d-b4ea-2ce22d9e9c82", "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-b17623df-4ad9-497a-8f09-fa0c9880fd3c +Openstack-Request-Id: req-576c28b2-46a0-41e4-b056-9c35a2dd1698 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-06T10:57:37.080833+00:00", "updated_at": "2024-01-06T10:57:37.091410+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": "c48033c4-5908-4e4b-a605-c681dee8ce6d", "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": "c48033c4-5908-4e4b-a605-c681dee8ce6d", "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 {} +{"uuid": "132f149d-b9c9-475d-b4ea-2ce22d9e9c82", "created_at": "2025-02-07T17:33:59.310530+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/132f149d-b9c9-475d-b4ea-2ce22d9e9c82", "rel": "self"}, {"href": "http://localhost/deploy_templates/132f149d-b9c9-475d-b4ea-2ce22d9e9c82", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +API ACL Testing Path patch /v1/deploy_templates/812e3dbd-bb89-457c-ac6d-f14536cabac8 +PATCH: /v1/deploy_templates/812e3dbd-bb89-457c-ac6d-f14536cabac8 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a1b953fe-f6e7-4a85-b7d8-b98b57aa5dc2 +Openstack-Request-Id: req-f5d4342e-ecac-410c-acdb-702eb09e1e1f 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": "812e3dbd-bb89-457c-ac6d-f14536cabac8", "created_at": "2025-02-07T17:33:59.377889+00:00", "updated_at": "2025-02-07T17:33:59.414525+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/812e3dbd-bb89-457c-ac6d-f14536cabac8", "rel": "self"}, {"href": "http://localhost/deploy_templates/812e3dbd-bb89-457c-ac6d-f14536cabac8", "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-a1b953fe-f6e7-4a85-b7d8-b98b57aa5dc2 +Openstack-Request-Id: req-f5d4342e-ecac-410c-acdb-702eb09e1e1f 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 +{"uuid": "812e3dbd-bb89-457c-ac6d-f14536cabac8", "created_at": "2025-02-07T17:33:59.377889+00:00", "updated_at": "2025-02-07T17:33:59.414525+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/812e3dbd-bb89-457c-ac6d-f14536cabac8", "rel": "self"}, {"href": "http://localhost/deploy_templates/812e3dbd-bb89-457c-ac6d-f14536cabac8", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +API ACL Testing Path patch /v1/deploy_templates/f3bfb225-a9b0-458a-aa42-a4adbf5714fd +PATCH: /v1/deploy_templates/f3bfb225-a9b0-458a-aa42-a4adbf5714fd [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-59b247ec-b5ec-43c4-8f2e-65feced8b94b +Openstack-Request-Id: req-cd686807-dcd2-4fdf-aba4-05469c83b060 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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:deploy_template:update\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-59b247ec-b5ec-43c4-8f2e-65feced8b94b +Openstack-Request-Id: req-cd686807-dcd2-4fdf-aba4-05469c83b060 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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_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.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.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_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.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.ilo.test_bios.IloBiosTestCase.test_get_properties -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_get_properties ... 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.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.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.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.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.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.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.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.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 +{"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/0716386b-064c-4a55-8898-2c2dcb5264af +PATCH: /v1/deploy_templates/0716386b-064c-4a55-8898-2c2dcb5264af [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-78577c1b-53be-4b83-9d79-b35255e3299d +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-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-78577c1b-53be-4b83-9d79-b35255e3299d +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-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/9c44500f-62e4-435c-9ba2-6ea0535a4549 +DELETE: /v1/deploy_templates/9c44500f-62e4-435c-9ba2-6ea0535a4549 +GOT:Response: 204 No Content +Openstack-Request-Id: req-29f62840-c4cf-4e7e-989a-7a5c64e52794 +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-29f62840-c4cf-4e7e-989a-7a5c64e52794 +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/e85bbe04-fc20-42f1-a29e-72f23479d8bf +DELETE: /v1/deploy_templates/e85bbe04-fc20-42f1-a29e-72f23479d8bf +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.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.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_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.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.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_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_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.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.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_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.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.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.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.VendorPassthruTestCase.test_vendor_passthru_unsupported_method +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_unsupported_method ... 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.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.test_agent.TestCustomAgentDeploy.test_deploy +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy ... 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_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.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.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.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_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.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.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.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_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.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_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.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.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.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.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_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.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.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.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.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.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.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.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 -API ACL Testing Path delete /v1/allocations/6d9c333b-dbf1-43a6-9fc5-ef07ad55cfdf -DELETE: /v1/allocations/6d9c333b-dbf1-43a6-9fc5-ef07ad55cfdf +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.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.test_agent.TestCustomAgentDeploy.test_deploy_fast_track +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_fast_track ... 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.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 +API ACL Testing Path delete /v1/allocations/1189f1c4-dd4f-448d-8b4d-0b66a5a2397f +DELETE: /v1/allocations/1189f1c4-dd4f-448d-8b4d-0b66a5a2397f GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-5463d613-ef05-4e8c-847f-b239076b39ee +Openstack-Request-Id: req-67ae027b-89fc-4677-8bdb-328d63027ebb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-5463d613-ef05-4e8c-847f-b239076b39ee +Openstack-Request-Id: req-67ae027b-89fc-4677-8bdb-328d63027ebb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/f4305155-b550-4bcd-add6-938f39ba8fa0 -DELETE: /v1/allocations/f4305155-b550-4bcd-add6-938f39ba8fa0 +API ACL Testing Path delete /v1/allocations/25a7c553-f6b0-4bbc-adb5-db50a4a49097 +DELETE: /v1/allocations/25a7c553-f6b0-4bbc-adb5-db50a4a49097 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-64ee03d6-cad5-4926-984c-a393157dd438 +Openstack-Request-Id: req-43555250-f985-4a84-8208-6fa17e502e30 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-64ee03d6-cad5-4926-984c-a393157dd438 +Openstack-Request-Id: req-43555250-f985-4a84-8208-6fa17e502e30 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/660716cb-43b9-4410-ac1e-6427520c5be0 -DELETE: /v1/allocations/660716cb-43b9-4410-ac1e-6427520c5be0 +API ACL Testing Path delete /v1/allocations/60a33a33-30d8-4a99-9925-41079601d6ee +DELETE: /v1/allocations/60a33a33-30d8-4a99-9925-41079601d6ee GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c3909e9a-5573-4e96-ac99-dfb1d6db51a4 +Openstack-Request-Id: req-d2b555dd-4416-4da0-bc30-28ddf52a60bd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-c3909e9a-5573-4e96-ac99-dfb1d6db51a4 +Openstack-Request-Id: req-d2b555dd-4416-4da0-bc30-28ddf52a60bd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -40975,393 +38277,468 @@ GET: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-267bbfcf-5581-4fca-a9db-aa694787ad24 +Openstack-Request-Id: req-3859d7af-1d25-4636-8b95-40c34c5f6a50 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "b19afd85-6bc3-4922-ba8b-8e7b65af9cab", "created_at": "2024-01-06T10:57:37.397377+00:00", "updated_at": "2024-01-06T10:57:37.406861+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/b19afd85-6bc3-4922-ba8b-8e7b65af9cab", "rel": "self"}, {"href": "http://localhost/allocations/b19afd85-6bc3-4922-ba8b-8e7b65af9cab", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +{"uuid": "f7654ab9-48e6-496a-becb-00fde03c4f9b", "created_at": "2025-02-07T17:33:59.609818+00:00", "updated_at": "2025-02-07T17:33:59.618714+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/f7654ab9-48e6-496a-becb-00fde03c4f9b", "rel": "self"}, {"href": "http://localhost/allocations/f7654ab9-48e6-496a-becb-00fde03c4f9b", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-267bbfcf-5581-4fca-a9db-aa694787ad24 +Openstack-Request-Id: req-3859d7af-1d25-4636-8b95-40c34c5f6a50 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "b19afd85-6bc3-4922-ba8b-8e7b65af9cab", "created_at": "2024-01-06T10:57:37.397377+00:00", "updated_at": "2024-01-06T10:57:37.406861+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/b19afd85-6bc3-4922-ba8b-8e7b65af9cab", "rel": "self"}, {"href": "http://localhost/allocations/b19afd85-6bc3-4922-ba8b-8e7b65af9cab", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +{"uuid": "f7654ab9-48e6-496a-becb-00fde03c4f9b", "created_at": "2025-02-07T17:33:59.609818+00:00", "updated_at": "2025-02-07T17:33:59.618714+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/f7654ab9-48e6-496a-becb-00fde03c4f9b", "rel": "self"}, {"href": "http://localhost/allocations/f7654ab9-48e6-496a-becb-00fde03c4f9b", "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-245d047c-e63a-4f60-8a5e-0ab1e1f725d7 +Openstack-Request-Id: req-53cd22df-accf-41e6-8a93-884f80f68d6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "578d439a-9d61-4e7f-aa56-c42c9cddab5d", "created_at": "2024-01-06T10:57:37.475422+00:00", "updated_at": "2024-01-06T10:57:37.484693+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/578d439a-9d61-4e7f-aa56-c42c9cddab5d", "rel": "self"}, {"href": "http://localhost/allocations/578d439a-9d61-4e7f-aa56-c42c9cddab5d", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +{"uuid": "adf5a45d-3aa3-4f5e-8475-1e081199e90e", "created_at": "2025-02-07T17:33:59.682380+00:00", "updated_at": "2025-02-07T17:33:59.690786+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/adf5a45d-3aa3-4f5e-8475-1e081199e90e", "rel": "self"}, {"href": "http://localhost/allocations/adf5a45d-3aa3-4f5e-8475-1e081199e90e", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-245d047c-e63a-4f60-8a5e-0ab1e1f725d7 +Openstack-Request-Id: req-53cd22df-accf-41e6-8a93-884f80f68d6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "578d439a-9d61-4e7f-aa56-c42c9cddab5d", "created_at": "2024-01-06T10:57:37.475422+00:00", "updated_at": "2024-01-06T10:57:37.484693+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/578d439a-9d61-4e7f-aa56-c42c9cddab5d", "rel": "self"}, {"href": "http://localhost/allocations/578d439a-9d61-4e7f-aa56-c42c9cddab5d", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +{"uuid": "adf5a45d-3aa3-4f5e-8475-1e081199e90e", "created_at": "2025-02-07T17:33:59.682380+00:00", "updated_at": "2025-02-07T17:33:59.690786+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/adf5a45d-3aa3-4f5e-8475-1e081199e90e", "rel": "self"}, {"href": "http://localhost/allocations/adf5a45d-3aa3-4f5e-8475-1e081199e90e", "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-dd93855c-007c-47cc-94dc-1eb5fdfa1144 +Openstack-Request-Id: req-040723a3-b2a5-4d67-90d8-704bde6af8d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "40a2dc5c-0d26-443f-86a9-4586b9a5c9aa", "created_at": "2024-01-06T10:57:37.550856+00:00", "updated_at": "2024-01-06T10:57:37.560351+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/40a2dc5c-0d26-443f-86a9-4586b9a5c9aa", "rel": "self"}, {"href": "http://localhost/allocations/40a2dc5c-0d26-443f-86a9-4586b9a5c9aa", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +{"uuid": "9e63b707-443c-4b78-9bd4-399bc7d6ee6a", "created_at": "2025-02-07T17:33:59.756062+00:00", "updated_at": "2025-02-07T17:33:59.764355+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/9e63b707-443c-4b78-9bd4-399bc7d6ee6a", "rel": "self"}, {"href": "http://localhost/allocations/9e63b707-443c-4b78-9bd4-399bc7d6ee6a", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-dd93855c-007c-47cc-94dc-1eb5fdfa1144 +Openstack-Request-Id: req-040723a3-b2a5-4d67-90d8-704bde6af8d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "40a2dc5c-0d26-443f-86a9-4586b9a5c9aa", "created_at": "2024-01-06T10:57:37.550856+00:00", "updated_at": "2024-01-06T10:57:37.560351+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/40a2dc5c-0d26-443f-86a9-4586b9a5c9aa", "rel": "self"}, {"href": "http://localhost/allocations/40a2dc5c-0d26-443f-86a9-4586b9a5c9aa", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +{"uuid": "9e63b707-443c-4b78-9bd4-399bc7d6ee6a", "created_at": "2025-02-07T17:33:59.756062+00:00", "updated_at": "2025-02-07T17:33:59.764355+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/9e63b707-443c-4b78-9bd4-399bc7d6ee6a", "rel": "self"}, {"href": "http://localhost/allocations/9e63b707-443c-4b78-9bd4-399bc7d6ee6a", "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.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_utils.AgentTokenUtilsTestCase.test_add_secret_token +ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_add_secret_token ... 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.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.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.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.TestCustomAgentDeploy.test_deploy_with_deployment_reboot +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_with_deployment_reboot ... ok +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.drivers.modules.test_agent.TestCustomAgentDeploy.test_get_properties +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_get_properties ... 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.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 -GOT:Response: 404 Not Found +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_port_creation +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_port_creation ... 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.redfish.test_inspect.RedfishInspectTestCase.test_validate +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_validate ... 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.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 +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1aa85a88-32ef-4afc-a8c7-e8810a8f85b4 +Openstack-Request-Id: req-62815318-3ec0-48d8-94fa-d661fd5034ee X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"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-c8263221-7dee-43b4-918e-a8e8910a71b7 +Openstack-Request-Id: req-62815318-3ec0-48d8-94fa-d661fd5034ee X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_MEOW +DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_MEOW +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a5af6291-5ac4-4a93-9090-18c558d19406 +Openstack-Request-Id: req-50d4768d-d4e8-44e8-8a03-bf10134f2d51 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"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-d720cd35-e850-4d18-b047-1ff938db307d +Openstack-Request-Id: req-50d4768d-d4e8-44e8-8a03-bf10134f2d51 X-Openstack-Ironic-Api-Maximum-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/console -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_MEOW +DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_MEOW +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d38cc182-396b-4a02-8dd9-d3a9375e3970 +Openstack-Request-Id: req-93e35694-37a1-42db-abb9-7a3a188ee74b X-Openstack-Ironic-Api-Maximum-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/console -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} -GOT:Response: 404 Not Found +{"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-5e114ba4-1acb-4548-b540-342bbb515cbf +Openstack-Request-Id: req-93e35694-37a1-42db-abb9-7a3a188ee74b X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_MEOW +DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_MEOW +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6d2a0183-cb09-4d78-bbf1-519e35d67eef +Openstack-Request-Id: req-8c1be58c-e6ff-4afd-a670-bc8e938651e8 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"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-b0de34a1-b1ff-499f-a959-8e391306102c +Openstack-Request-Id: req-8c1be58c-e6ff-4afd-a670-bc8e938651e8 X-Openstack-Ironic-Api-Maximum-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} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_MEOW +DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_MEOW GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b6cfa437-a1f8-4b1e-8f89-d7aa7a18b6d5 +Openstack-Request-Id: req-30e2e266-1c4f-40ee-8a84-1c4aa0311200 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"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-ff77ea08-a68e-4099-a996-e26af2e23d22 +Openstack-Request-Id: req-30e2e266-1c4f-40ee-8a84-1c4aa0311200 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits/CUSTOM_TRAIT2 +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-0a94a401-670a-46a8-9dde-c244d962f7cb +Openstack-Request-Id: req-f1a5ca85-cc6e-42e3-b376-c4764c826065 X-Openstack-Ironic-Api-Maximum-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: 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-ee529d2e-cb32-43a4-b5e2-dabac2b3047e +Openstack-Request-Id: req-f1a5ca85-cc6e-42e3-b376-c4764c826065 X-Openstack-Ironic-Api-Maximum-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: 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/traits/CUSTOM_TRAIT2 +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-9cd51e31-0857-42e9-b19d-9eb0b649e08a +Openstack-Request-Id: req-300f4c19-1286-4f1a-b647-079b4442f0ae X-Openstack-Ironic-Api-Maximum-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: 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-33d5cf05-92a4-4cbb-a53c-7ec5d2abc797 +Openstack-Request-Id: req-300f4c19-1286-4f1a-b647-079b4442f0ae X-Openstack-Ironic-Api-Maximum-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_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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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 -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 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits/CUSTOM_TRAIT2 +PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits/CUSTOM_TRAIT2 None +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f982318c-87d4-4c7e-95ef-a61ab4a11b78 +Openstack-Request-Id: req-0cef0582-93c8-4f6f-8fd0-efaf644f8be7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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:traits:set\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f982318c-87d4-4c7e-95ef-a61ab4a11b78 +Openstack-Request-Id: req-0cef0582-93c8-4f6f-8fd0-efaf644f8be7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_TRAIT2 +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.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_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.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.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.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.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.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.drivers.modules.test_agent.TestCustomAgentDeploy.test_validate +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_exc +ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_exc ... ok +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f4e349e5-7ec4-48ee-94ce-9aebd908fec7 +Openstack-Request-Id: req-58664d5f-6bb9-4ce5-a2e9-101e97471bf5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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:deploy_template:delete\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f4e349e5-7ec4-48ee-94ce-9aebd908fec7 +Openstack-Request-Id: req-58664d5f-6bb9-4ce5-a2e9-101e97471bf5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 -PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"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/cab60847-dd71-498d-bdce-e0b092089bb8 +DELETE: /v1/deploy_templates/cab60847-dd71-498d-bdce-e0b092089bb8 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7d89a4d7-5028-4b2b-84d1-00412f10bfa8 +Openstack-Request-Id: req-e86604af-7b91-4c8d-87d9-15a10b579bfc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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:deploy_template:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7d89a4d7-5028-4b2b-84d1-00412f10bfa8 +Openstack-Request-Id: req-e86604af-7b91-4c8d-87d9-15a10b579bfc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 patch /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f -PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'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: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-2dd6f7a7-8d92-4152-978f-00e45791b19e +Location: http://localhost/v1/chassis/ad4832bf-1909-4e50-bc9d-c3c3b9e7772d +Openstack-Request-Id: req-a806c5bb-b7f7-4ef3-b525-d7324729b20c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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": "ad4832bf-1909-4e50-bc9d-c3c3b9e7772d", "created_at": "2025-02-07T17:33:59.819830+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/ad4832bf-1909-4e50-bc9d-c3c3b9e7772d", "rel": "self"}, {"href": "http://localhost/chassis/ad4832bf-1909-4e50-bc9d-c3c3b9e7772d", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/ad4832bf-1909-4e50-bc9d-c3c3b9e7772d/nodes", "rel": "self"}, {"href": "http://localhost/chassis/ad4832bf-1909-4e50-bc9d-c3c3b9e7772d/nodes", "rel": "bookmark"}]]} +ACL Test GOT Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-2dd6f7a7-8d92-4152-978f-00e45791b19e +Location: http://localhost/v1/chassis/ad4832bf-1909-4e50-bc9d-c3c3b9e7772d +Openstack-Request-Id: req-a806c5bb-b7f7-4ef3-b525-d7324729b20c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f -PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 503 Service Unavailable +{"uuid": "ad4832bf-1909-4e50-bc9d-c3c3b9e7772d", "created_at": "2025-02-07T17:33:59.819830+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/ad4832bf-1909-4e50-bc9d-c3c3b9e7772d", "rel": "self"}, {"href": "http://localhost/chassis/ad4832bf-1909-4e50-bc9d-c3c3b9e7772d", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/ad4832bf-1909-4e50-bc9d-c3c3b9e7772d/nodes", "rel": "self"}, {"href": "http://localhost/chassis/ad4832bf-1909-4e50-bc9d-c3c3b9e7772d/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-b2638dfd-0291-4dbd-8a19-619675760c24 +Openstack-Request-Id: req-24d8a8d9-c935-4705-9e0b-6ba33eda55ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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:chassis:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b2638dfd-0291-4dbd-8a19-619675760c24 +Openstack-Request-Id: req-24d8a8d9-c935-4705-9e0b-6ba33eda55ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f -PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'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: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-da9ec4c9-008d-48a6-a2ab-3f44f0aba955 +Openstack-Request-Id: req-aba9c954-1f22-43c3-8f0b-9ff565fdd0aa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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:chassis:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-da9ec4c9-008d-48a6-a2ab-3f44f0aba955 +Openstack-Request-Id: req-aba9c954-1f22-43c3-8f0b-9ff565fdd0aa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f -PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 403 Forbidden +{"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-b96f8644-94cf-4747-9fa9-ba74ea2bc144 +Openstack-Request-Id: req-feb1ddf4-3f63-4402-9ae9-d8819856e4c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-b96f8644-94cf-4747-9fa9-ba74ea2bc144 +Openstack-Request-Id: req-feb1ddf4-3f63-4402-9ae9-d8819856e4c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 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: 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-3b37973d-4ce3-493d-ae9d-61657f936370 +Openstack-Request-Id: req-96069c1d-2276-4af4-b768-fec8dfb97549 X-Openstack-Ironic-Api-Maximum-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 +{"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-3b37973d-4ce3-493d-ae9d-61657f936370 +Openstack-Request-Id: req-96069c1d-2276-4af4-b768-fec8dfb97549 X-Openstack-Ironic-Api-Maximum-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.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.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.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 +{"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-41510856-9ace-4bd3-8648-63d9156ec624 +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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value +ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value ... 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.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.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.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 +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.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.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.db.test_api.UpgradingTestCase.test_check_versions +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions ... 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.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.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_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address ... 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.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.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.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_name +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_name ... 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-ea357c71-b28b-4b17-b730-7015ee2db34a +Openstack-Request-Id: req-8ea89d37-f9b8-434b-b37f-ae0a27928005 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-ea357c71-b28b-4b17-b730-7015ee2db34a +Openstack-Request-Id: req-8ea89d37-f9b8-434b-b37f-ae0a27928005 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -41370,14 +38747,14 @@ DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-03679b7e-231e-4a42-ba4f-c3a2fb390ca9 +Openstack-Request-Id: req-fe762c84-dd07-4879-adfc-e6738894fce1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-03679b7e-231e-4a42-ba4f-c3a2fb390ca9 +Openstack-Request-Id: req-fe762c84-dd07-4879-adfc-e6738894fce1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -41386,14 +38763,14 @@ DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-759d096c-0386-4c73-91a5-c67ab2a83620 +Openstack-Request-Id: req-d6a7db51-df78-490e-9f42-c86bab00d3c5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-759d096c-0386-4c73-91a5-c67ab2a83620 +Openstack-Request-Id: req-d6a7db51-df78-490e-9f42-c86bab00d3c5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -41402,32 +38779,32 @@ POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/deploy_templates/3c081a08-5c26-4449-b050-27db1056255d -Openstack-Request-Id: req-b32c1c38-0f23-492c-b041-92d065a7d7e9 +Location: http://localhost/v1/deploy_templates/aa5fbc71-848e-4b4c-a5f6-757915dcc90c +Openstack-Request-Id: req-8c2c489f-950c-4983-93d7-84b2ef74b8a5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "3c081a08-5c26-4449-b050-27db1056255d", "created_at": "2024-01-06T10:57:37.899220+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/3c081a08-5c26-4449-b050-27db1056255d", "rel": "self"}, {"href": "http://localhost/deploy_templates/3c081a08-5c26-4449-b050-27db1056255d", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]} +{"uuid": "aa5fbc71-848e-4b4c-a5f6-757915dcc90c", "created_at": "2025-02-07T17:34:00.099662+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/aa5fbc71-848e-4b4c-a5f6-757915dcc90c", "rel": "self"}, {"href": "http://localhost/deploy_templates/aa5fbc71-848e-4b4c-a5f6-757915dcc90c", "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/3c081a08-5c26-4449-b050-27db1056255d -Openstack-Request-Id: req-b32c1c38-0f23-492c-b041-92d065a7d7e9 +Location: http://localhost/v1/deploy_templates/aa5fbc71-848e-4b4c-a5f6-757915dcc90c +Openstack-Request-Id: req-8c2c489f-950c-4983-93d7-84b2ef74b8a5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "3c081a08-5c26-4449-b050-27db1056255d", "created_at": "2024-01-06T10:57:37.899220+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/3c081a08-5c26-4449-b050-27db1056255d", "rel": "self"}, {"href": "http://localhost/deploy_templates/3c081a08-5c26-4449-b050-27db1056255d", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]} +{"uuid": "aa5fbc71-848e-4b4c-a5f6-757915dcc90c", "created_at": "2025-02-07T17:34:00.099662+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/aa5fbc71-848e-4b4c-a5f6-757915dcc90c", "rel": "self"}, {"href": "http://localhost/deploy_templates/aa5fbc71-848e-4b4c-a5f6-757915dcc90c", "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-72f702a8-4876-42f8-a31f-394df85e1ff2 +Openstack-Request-Id: req-11500a9d-3620-435c-90f8-ce1fa4aa5fa1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-72f702a8-4876-42f8-a31f-394df85e1ff2 +Openstack-Request-Id: req-11500a9d-3620-435c-90f8-ce1fa4aa5fa1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -41436,14 +38813,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-edf18aa2-aa69-4d27-bb09-2975865d5583 +Openstack-Request-Id: req-21600235-74ea-4a9e-82d1-2347f4d7f30a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-edf18aa2-aa69-4d27-bb09-2975865d5583 +Openstack-Request-Id: req-21600235-74ea-4a9e-82d1-2347f4d7f30a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -41452,599 +38829,979 @@ GET: /v1/deploy_templates {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ff74f049-4ac2-4a36-949a-e5cb83b7be34 +Openstack-Request-Id: req-8e8d3747-1eec-456d-a9f7-741304b9a0fc 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": "9f402026-61c2-497e-9e68-a024b0c9362d", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/9f402026-61c2-497e-9e68-a024b0c9362d", "rel": "self"}, {"href": "http://localhost/deploy_templates/9f402026-61c2-497e-9e68-a024b0c9362d", "rel": "bookmark"}]}]} +{"deploy_templates": [{"uuid": "01d281ae-4227-4439-9e64-316cd6b3660a", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/01d281ae-4227-4439-9e64-316cd6b3660a", "rel": "self"}, {"href": "http://localhost/deploy_templates/01d281ae-4227-4439-9e64-316cd6b3660a", "rel": "bookmark"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ff74f049-4ac2-4a36-949a-e5cb83b7be34 +Openstack-Request-Id: req-8e8d3747-1eec-456d-a9f7-741304b9a0fc 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": "9f402026-61c2-497e-9e68-a024b0c9362d", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/9f402026-61c2-497e-9e68-a024b0c9362d", "rel": "self"}, {"href": "http://localhost/deploy_templates/9f402026-61c2-497e-9e68-a024b0c9362d", "rel": "bookmark"}]}]} +{"deploy_templates": [{"uuid": "01d281ae-4227-4439-9e64-316cd6b3660a", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/01d281ae-4227-4439-9e64-316cd6b3660a", "rel": "self"}, {"href": "http://localhost/deploy_templates/01d281ae-4227-4439-9e64-316cd6b3660a", "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.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_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.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.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.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.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.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.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_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_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.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.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.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.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.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup ... 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_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.db.test_chassis.DbChassisTestCase.test_destroy_chassis +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis ... 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.db.test_api.UpgradingTestCase.test_check_versions_conductor +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor ... 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.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.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.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.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_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.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_conductor_old +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old ... 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_parse_deploy_info_ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_parse_deploy_info_ok ... 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.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.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.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid ... 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.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid ... ok + +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-41510856-9ace-4bd3-8648-63d9156ec624 +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-89bd57bf-c895-45f2-8b74-e89f2444c2f7 +Openstack-Request-Id: req-3aca6f66-75a5-4d80-8548-b742254d0344 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": "315cb9d6-e68a-43b9-9a31-f55e2f714cdd", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/315cb9d6-e68a-43b9-9a31-f55e2f714cdd", "rel": "self"}, {"href": "http://localhost/deploy_templates/315cb9d6-e68a-43b9-9a31-f55e2f714cdd", "rel": "bookmark"}]}]} +{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:34:00.258498+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-89bd57bf-c895-45f2-8b74-e89f2444c2f7 +Openstack-Request-Id: req-3aca6f66-75a5-4d80-8548-b742254d0344 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": "315cb9d6-e68a-43b9-9a31-f55e2f714cdd", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/315cb9d6-e68a-43b9-9a31-f55e2f714cdd", "rel": "self"}, {"href": "http://localhost/deploy_templates/315cb9d6-e68a-43b9-9a31-f55e2f714cdd", "rel": "bookmark"}]}]} -API ACL Testing Path get /v1/deploy_templates -GET: /v1/deploy_templates {} -GOT:Response: 200 OK +{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:34:00.258498+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-3b6d7019-61a2-4f72-9184-205998b63688 +Openstack-Request-Id: req-2a388340-f97d-4445-9675-ac6f6ec00a73 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": "a3d35eca-fe67-410b-8e85-b223fbaec50e", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/a3d35eca-fe67-410b-8e85-b223fbaec50e", "rel": "self"}, {"href": "http://localhost/deploy_templates/a3d35eca-fe67-410b-8e85-b223fbaec50e", "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-3b6d7019-61a2-4f72-9184-205998b63688 +Openstack-Request-Id: req-2a388340-f97d-4445-9675-ac6f6ec00a73 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": "a3d35eca-fe67-410b-8e85-b223fbaec50e", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/a3d35eca-fe67-410b-8e85-b223fbaec50e", "rel": "self"}, {"href": "http://localhost/deploy_templates/a3d35eca-fe67-410b-8e85-b223fbaec50e", "rel": "bookmark"}]}]} -API ACL Testing Path get /v1/deploy_templates/c31c8b1d-46ed-4806-8e3f-a07cc0a5ba7a -GET: /v1/deploy_templates/c31c8b1d-46ed-4806-8e3f-a07cc0a5ba7a {} +{"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-be8ca942-157c-4080-835c-7f3b9a452bec +Openstack-Request-Id: req-a7886baa-8b99-4f15-b1f0-eb7900cb3bbb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "c31c8b1d-46ed-4806-8e3f-a07cc0a5ba7a", "created_at": "2024-01-06T10:57:38.299552+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/c31c8b1d-46ed-4806-8e3f-a07cc0a5ba7a", "rel": "self"}, {"href": "http://localhost/deploy_templates/c31c8b1d-46ed-4806-8e3f-a07cc0a5ba7a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:34:00.403932+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-be8ca942-157c-4080-835c-7f3b9a452bec +Openstack-Request-Id: req-a7886baa-8b99-4f15-b1f0-eb7900cb3bbb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "c31c8b1d-46ed-4806-8e3f-a07cc0a5ba7a", "created_at": "2024-01-06T10:57:38.299552+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/c31c8b1d-46ed-4806-8e3f-a07cc0a5ba7a", "rel": "self"}, {"href": "http://localhost/deploy_templates/c31c8b1d-46ed-4806-8e3f-a07cc0a5ba7a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -API ACL Testing Path get /v1/deploy_templates/a9a64749-1e2a-424b-8b9e-35c10669654a -GET: /v1/deploy_templates/a9a64749-1e2a-424b-8b9e-35c10669654a {} +{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:34:00.403932+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-ee6d9003-5581-410b-b370-d141d862e1e1 +Openstack-Request-Id: req-e11a70d9-b6bd-404c-949d-3548693c0845 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "a9a64749-1e2a-424b-8b9e-35c10669654a", "created_at": "2024-01-06T10:57:38.368266+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/a9a64749-1e2a-424b-8b9e-35c10669654a", "rel": "self"}, {"href": "http://localhost/deploy_templates/a9a64749-1e2a-424b-8b9e-35c10669654a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:34:00.479586+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-ee6d9003-5581-410b-b370-d141d862e1e1 +Openstack-Request-Id: req-e11a70d9-b6bd-404c-949d-3548693c0845 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "a9a64749-1e2a-424b-8b9e-35c10669654a", "created_at": "2024-01-06T10:57:38.368266+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/a9a64749-1e2a-424b-8b9e-35c10669654a", "rel": "self"}, {"href": "http://localhost/deploy_templates/a9a64749-1e2a-424b-8b9e-35c10669654a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -API ACL Testing Path get /v1/deploy_templates/79347e58-4629-44fb-9fc4-39babeb59814 -GET: /v1/deploy_templates/79347e58-4629-44fb-9fc4-39babeb59814 {} -GOT:Response: 200 OK +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:34:00.479586+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-6eb3d82c-28c8-4139-9adb-48519c5a6f99 +Openstack-Request-Id: req-23d8271a-4bd8-4613-b1da-1f2b62a6d01f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "79347e58-4629-44fb-9fc4-39babeb59814", "created_at": "2024-01-06T10:57:38.436953+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/79347e58-4629-44fb-9fc4-39babeb59814", "rel": "self"}, {"href": "http://localhost/deploy_templates/79347e58-4629-44fb-9fc4-39babeb59814", "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:chassis:get\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6eb3d82c-28c8-4139-9adb-48519c5a6f99 +Openstack-Request-Id: req-23d8271a-4bd8-4613-b1da-1f2b62a6d01f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "79347e58-4629-44fb-9fc4-39babeb59814", "created_at": "2024-01-06T10:57:38.436953+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/79347e58-4629-44fb-9fc4-39babeb59814", "rel": "self"}, {"href": "http://localhost/deploy_templates/79347e58-4629-44fb-9fc4-39babeb59814", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -API ACL Testing Path patch /v1/deploy_templates/19002f07-f696-41c8-9ecc-eebf99c7b94f -PATCH: /v1/deploy_templates/19002f07-f696-41c8-9ecc-eebf99c7b94f [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] -GOT:Response: 200 OK +{"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_portgroup_by_address +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address ... 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_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.db.test_chassis.DbChassisTestCase.test_get_chassis_list +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_list ... 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.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.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_https +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_https ... ok +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-0ea31eb9-7a54-4dd9-8174-53ea2d5cd3cc +Openstack-Request-Id: req-09e7e208-fb02-4f72-9ad3-f19579d5046d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "19002f07-f696-41c8-9ecc-eebf99c7b94f", "created_at": "2024-01-06T10:57:38.504554+00:00", "updated_at": "2024-01-06T10:57:38.544783+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/19002f07-f696-41c8-9ecc-eebf99c7b94f", "rel": "self"}, {"href": "http://localhost/deploy_templates/19002f07-f696-41c8-9ecc-eebf99c7b94f", "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.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.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.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.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.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.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.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.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.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.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.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 -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 +{"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-c8bfc35a-7ed9-4824-87c9-8a1673b3b4c2 +Openstack-Request-Id: req-09e7e208-fb02-4f72-9ad3-f19579d5046d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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:traits:set\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_TRAIT2 +PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_TRAIT2 None +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c8bfc35a-7ed9-4824-87c9-8a1673b3b4c2 +Openstack-Request-Id: req-ec56fd35-36e2-4943-b88f-c84ff0d973e6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 -PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/driver', 'value': 'fake-hardware'}, {'op': 'replace', 'path': '/power_interface', 'value': 'fake'}] +{"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-ec56fd35-36e2-4943-b88f-c84ff0d973e6 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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 put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_TRAIT2 +PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_TRAIT2 None +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-3fe5b432-9ce5-483e-bd16-bd2331865f37 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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-3fe5b432-9ce5-483e-bd16-bd2331865f37 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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 put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_TRAIT2 +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-3117092b-0f1b-4711-a772-4a5be440a88c +X-Openstack-Ironic-Api-Maximum-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-3117092b-0f1b-4711-a772-4a5be440a88c +X-Openstack-Ironic-Api-Maximum-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/vifs +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-bed16cf2-d6fb-443c-b896-e2a0cd73cdba +Openstack-Request-Id: req-8ae94764-0c6c-4b5f-8b3d-3c5015aa7c5e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-bed16cf2-d6fb-443c-b896-e2a0cd73cdba +Openstack-Request-Id: req-8ae94764-0c6c-4b5f-8b3d-3c5015aa7c5e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 -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'}] +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f8a89b51-9a45-40a9-9e00-04406f8439b8 +Openstack-Request-Id: req-aff5ba37-be11-4fe9-b5dc-889520dbf3fb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-f8a89b51-9a45-40a9-9e00-04406f8439b8 +Openstack-Request-Id: req-aff5ba37-be11-4fe9-b5dc-889520dbf3fb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 -PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/lessee', 'value': '198566a5-a609-4463-9800-e8920be7c2fa'}] +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-55540fb9-0daa-432b-bd68-c3c64c10132a +X-Openstack-Ironic-Api-Maximum-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-55540fb9-0daa-432b-bd68-c3c64c10132a +X-Openstack-Ironic-Api-Maximum-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 post /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs +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-9468fd3c-198a-4d56-ac8b-dd40c3929f2d +Openstack-Request-Id: req-2f048972-ffb4-48c6-b2b9-76d91cce29af X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-9468fd3c-198a-4d56-ac8b-dd40c3929f2d +Openstack-Request-Id: req-2f048972-ffb4-48c6-b2b9-76d91cce29af X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f -PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/lessee', 'value': '1234'}] +API ACL Testing Path post /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs +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.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.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.db.test_chassis.DbChassisTestCase.test_update_chassis +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis ... 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.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.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.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.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid ... 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.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.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.db.test_api.UpgradingTestCase.test_check_versions_emptyDB +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB ... 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_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.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.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.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.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.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.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.modules.redfish.test_management.RedfishManagementTestCase.test_detect_vendor +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detect_vendor ... 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.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.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.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.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.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_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.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_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.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.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 +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-575cfa97-153b-4ee1-a2c6-2df66b2db238 +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": "acbe5fd2-bd76-4161-bcc4-d4c7d25ca4ab", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/acbe5fd2-bd76-4161-bcc4-d4c7d25ca4ab", "rel": "self"}, {"href": "http://localhost/deploy_templates/acbe5fd2-bd76-4161-bcc4-d4c7d25ca4ab", "rel": "bookmark"}]}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-575cfa97-153b-4ee1-a2c6-2df66b2db238 +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": "acbe5fd2-bd76-4161-bcc4-d4c7d25ca4ab", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/acbe5fd2-bd76-4161-bcc4-d4c7d25ca4ab", "rel": "self"}, {"href": "http://localhost/deploy_templates/acbe5fd2-bd76-4161-bcc4-d4c7d25ca4ab", "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-e7f22297-7367-41bf-8b30-8cddf11110d2 +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": "3e28c393-dbe7-46b4-8148-a40ac55b7f55", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/3e28c393-dbe7-46b4-8148-a40ac55b7f55", "rel": "self"}, {"href": "http://localhost/deploy_templates/3e28c393-dbe7-46b4-8148-a40ac55b7f55", "rel": "bookmark"}]}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-e7f22297-7367-41bf-8b30-8cddf11110d2 +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": "3e28c393-dbe7-46b4-8148-a40ac55b7f55", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/3e28c393-dbe7-46b4-8148-a40ac55b7f55", "rel": "self"}, {"href": "http://localhost/deploy_templates/3e28c393-dbe7-46b4-8148-a40ac55b7f55", "rel": "bookmark"}]}]} +API ACL Testing Path get /v1/deploy_templates/b66e51eb-5cc6-440c-962e-50082845c355 +GET: /v1/deploy_templates/b66e51eb-5cc6-440c-962e-50082845c355 {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-57b9c41a-56da-41a5-9c61-4b46c92d2da7 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "b66e51eb-5cc6-440c-962e-50082845c355", "created_at": "2025-02-07T17:34:00.621756+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/b66e51eb-5cc6-440c-962e-50082845c355", "rel": "self"}, {"href": "http://localhost/deploy_templates/b66e51eb-5cc6-440c-962e-50082845c355", "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-57b9c41a-56da-41a5-9c61-4b46c92d2da7 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "b66e51eb-5cc6-440c-962e-50082845c355", "created_at": "2025-02-07T17:34:00.621756+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/b66e51eb-5cc6-440c-962e-50082845c355", "rel": "self"}, {"href": "http://localhost/deploy_templates/b66e51eb-5cc6-440c-962e-50082845c355", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +API ACL Testing Path get /v1/deploy_templates/63c04b06-e92e-43d4-ba7d-3a3271c6be70 +GET: /v1/deploy_templates/63c04b06-e92e-43d4-ba7d-3a3271c6be70 {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-53699028-08dc-4c4f-a10a-8e4e65ef6c11 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "63c04b06-e92e-43d4-ba7d-3a3271c6be70", "created_at": "2025-02-07T17:34:00.706849+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/63c04b06-e92e-43d4-ba7d-3a3271c6be70", "rel": "self"}, {"href": "http://localhost/deploy_templates/63c04b06-e92e-43d4-ba7d-3a3271c6be70", "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-53699028-08dc-4c4f-a10a-8e4e65ef6c11 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "63c04b06-e92e-43d4-ba7d-3a3271c6be70", "created_at": "2025-02-07T17:34:00.706849+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/63c04b06-e92e-43d4-ba7d-3a3271c6be70", "rel": "self"}, {"href": "http://localhost/deploy_templates/63c04b06-e92e-43d4-ba7d-3a3271c6be70", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +API ACL Testing Path get /v1/deploy_templates/eeacc00d-da03-486e-87cf-3da08693e4b2 +GET: /v1/deploy_templates/eeacc00d-da03-486e-87cf-3da08693e4b2 {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-3c6a1f1d-b8ed-4031-9e68-db069381d748 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "eeacc00d-da03-486e-87cf-3da08693e4b2", "created_at": "2025-02-07T17:34:00.812164+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/eeacc00d-da03-486e-87cf-3da08693e4b2", "rel": "self"}, {"href": "http://localhost/deploy_templates/eeacc00d-da03-486e-87cf-3da08693e4b2", "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-3c6a1f1d-b8ed-4031-9e68-db069381d748 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "eeacc00d-da03-486e-87cf-3da08693e4b2", "created_at": "2025-02-07T17:34:00.812164+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/eeacc00d-da03-486e-87cf-3da08693e4b2", "rel": "self"}, {"href": "http://localhost/deploy_templates/eeacc00d-da03-486e-87cf-3da08693e4b2", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +API ACL Testing Path patch /v1/deploy_templates/1bb139d9-677f-465e-85e9-f53bf2615c21 +PATCH: /v1/deploy_templates/1bb139d9-677f-465e-85e9-f53bf2615c21 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-9b0a44e7-7342-4bf1-a3ca-cf3d4bcc8b15 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1bb139d9-677f-465e-85e9-f53bf2615c21", "created_at": "2025-02-07T17:34:00.884426+00:00", "updated_at": "2025-02-07T17:34:00.933323+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/1bb139d9-677f-465e-85e9-f53bf2615c21", "rel": "self"}, {"href": "http://localhost/deploy_templates/1bb139d9-677f-465e-85e9-f53bf2615c21", "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.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.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.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.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_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_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.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.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.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.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.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.db.test_portgroups.DbportgroupTestCase.test_update_portgroup +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup ... 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.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.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.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.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.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.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.db.test_conductor.DbConductorTestCase.test_get_conductor +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor ... 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.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_conductor.DbConductorTestCase.test_get_conductor_not_found +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found ... 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.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.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.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.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.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.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid ... 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.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.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.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.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.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.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.db.test_conductor.DbConductorTestCase.test_get_offline_conductors +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors ... 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.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 +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-6fe5f23e-8e0e-49b2-a8e0-06883cc2eacf +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-07T17:34:00.647508+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-6fe5f23e-8e0e-49b2-a8e0-06883cc2eacf +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-07T17:34:00.647508+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 +Openstack-Request-Id: req-ce492874-6a84-4d17-b198-a64419f1f404 +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-07T17:34:00.723071+00:00", "updated_at": "2025-02-07T17:34:00.755085+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-ce492874-6a84-4d17-b198-a64419f1f404 +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-07T17:34:00.723071+00:00", "updated_at": "2025-02-07T17:34:00.755085+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-3ee8e2a0-627c-43c6-8e7a-f6ada4d9a34f +Openstack-Request-Id: req-fb51ff53-87f2-453e-b874-97a417961b86 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +{"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-3ee8e2a0-627c-43c6-8e7a-f6ada4d9a34f +Openstack-Request-Id: req-fb51ff53-87f2-453e-b874-97a417961b86 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} -API ACL Testing Path patch /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f -PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/lessee', 'value': '1234'}] +{"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-65888edf-4563-41d4-8b72-97bcd3c7311b +Openstack-Request-Id: req-1b65c4c0-95b7-4fc6-8682-763cbf482f3c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +{"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-65888edf-4563-41d4-8b72-97bcd3c7311b +Openstack-Request-Id: req-1b65c4c0-95b7-4fc6-8682-763cbf482f3c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} -API ACL Testing Path patch /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f -PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/owner', 'value': '1234'}] +{"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-5d8a7f7c-d259-45e9-b935-51a3d433d806 +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-5d8a7f7c-d259-45e9-b935-51a3d433d806 +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 Content-Type: application/json -Openstack-Request-Id: req-efad142a-604c-4e2a-b4eb-eb9b55e56d55 +Openstack-Request-Id: req-53e0d6e1-111f-4a75-8688-bac78b4266b2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +{"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-efad142a-604c-4e2a-b4eb-eb9b55e56d55 +Openstack-Request-Id: req-53e0d6e1-111f-4a75-8688-bac78b4266b2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} -API ACL Testing Path patch /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f -PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/owner', 'value': '1234'}] +{"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-2fb3c90e-a201-4a3f-b7bd-96141b24dba8 +Openstack-Request-Id: req-d6fb54c7-a9b2-48f2-83c3-fefb190b549e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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.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_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.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image ... ok -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 +{"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-0391a44d-787a-4382-95e3-dc5db7e6db7f +Openstack-Request-Id: req-d6fb54c7-a9b2-48f2-83c3-fefb190b549e X-Openstack-Ironic-Api-Maximum-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 -GOT:Response: 404 Not Found +{"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.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.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.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.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.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.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.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.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.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.db.test_ports.DbPortTestCase.test_destroy_port +ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port ... 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.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.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_conductor.DbConductorTestCase.test_register_conductor_existing_fails +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_existing_fails ... 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.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.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.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.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.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 +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.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.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.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.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.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.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.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.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.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.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.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_conductor.DbConductorTestCase.test_touch_conductor +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor ... 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.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.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.db.test_conductor.DbConductorTestCase.test_touch_conductor_deadlock +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_deadlock ... 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_conductor.DbConductorTestCase.test_touch_conductor_not_found +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found ... 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 +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-5e3edcf1-2acd-49de-bfe1-17016fff205e +Openstack-Request-Id: req-39d55870-1e83-4446-978a-e334c7ba1a9d X-Openstack-Ironic-Api-Maximum-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 -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-e49e53db-2650-49b7-a9b6-c3ece8637cd7 +Openstack-Request-Id: req-39d55870-1e83-4446-978a-e334c7ba1a9d X-Openstack-Ironic-Api-Maximum-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 -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs +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-9d40b054-3066-4064-ba28-64aced2497db +Openstack-Request-Id: req-e4d970b5-a705-460b-a0c7-35e34106d04d X-Openstack-Ironic-Api-Maximum-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: 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-0d4ecada-2c7b-42cb-bfc1-62c8001201e1 +Openstack-Request-Id: req-e4d970b5-a705-460b-a0c7-35e34106d04d X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs +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-1788267b-c4ce-49db-b26e-697c95bf8928 +Openstack-Request-Id: req-22901723-9a4b-45f2-bbfb-fac6642cfb41 X-Openstack-Ironic-Api-Maximum-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: 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-06ad6d0e-b6f7-4dd1-af4f-9d48b7682e03 +Openstack-Request-Id: req-22901723-9a4b-45f2-bbfb-fac6642cfb41 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs +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-c13b476f-65ff-4147-886f-6d48a72352a6 +Openstack-Request-Id: req-6a7230a4-3caa-4854-8e5b-29f058a3a3f7 X-Openstack-Ironic-Api-Maximum-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: 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-36854f07-5203-44b6-bc45-457aa7e8eab7 +Openstack-Request-Id: req-6a7230a4-3caa-4854-8e5b-29f058a3a3f7 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs +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-cb19b8a0-1e84-49b4-b47f-4f281212e240 +Openstack-Request-Id: req-a5942d2f-ccb2-4440-9ba6-4a7e47f816c2 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"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-e3965df1-4b8d-4d3a-8e8b-81779f215354 +Openstack-Request-Id: req-a5942d2f-ccb2-4440-9ba6-4a7e47f816c2 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs +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-06334950-0072-481c-8bab-dc57272fc5df +Openstack-Request-Id: req-fea58b41-6287-4706-8c27-42d178ed4b85 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"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-63b61e7a-4bcb-406f-98b0-9d5a24b7370c +Openstack-Request-Id: req-fea58b41-6287-4706-8c27-42d178ed4b85 X-Openstack-Ironic-Api-Maximum-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']} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs +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-13a7dbb1-03a2-4cde-8d2d-9a4529b26ebe +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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-13a7dbb1-03a2-4cde-8d2d-9a4529b26ebe +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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 post /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs +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-00a37c7e-931b-443e-b579-f0b15cafa4f8 +Openstack-Request-Id: req-79561d9f-4dbe-4c25-b5a8-4e368f33460d X-Openstack-Ironic-Api-Maximum-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 -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 -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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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 +{"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-79561d9f-4dbe-4c25-b5a8-4e368f33460d +X-Openstack-Ironic-Api-Maximum-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.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_281_chassis_post_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_281_chassis_post_admin ... 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.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.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.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.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.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.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.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.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.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.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.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.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_ports.DbPortTestCase.test_get_port_by_name +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_name ... 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.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.db.test_conductor.DbConductorTestCase.test_unregister_conductor +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor ... 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.db.test_ports.DbPortTestCase.test_get_port_by_uuid +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_uuid ... 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.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.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.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 ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0ea31eb9-7a54-4dd9-8174-53ea2d5cd3cc +Openstack-Request-Id: req-9b0a44e7-7342-4bf1-a3ca-cf3d4bcc8b15 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "19002f07-f696-41c8-9ecc-eebf99c7b94f", "created_at": "2024-01-06T10:57:38.504554+00:00", "updated_at": "2024-01-06T10:57:38.544783+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/19002f07-f696-41c8-9ecc-eebf99c7b94f", "rel": "self"}, {"href": "http://localhost/deploy_templates/19002f07-f696-41c8-9ecc-eebf99c7b94f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -API ACL Testing Path patch /v1/deploy_templates/967132db-9b05-4095-bd99-f5fdb9452b2c -PATCH: /v1/deploy_templates/967132db-9b05-4095-bd99-f5fdb9452b2c [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] +{"uuid": "1bb139d9-677f-465e-85e9-f53bf2615c21", "created_at": "2025-02-07T17:34:00.884426+00:00", "updated_at": "2025-02-07T17:34:00.933323+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/1bb139d9-677f-465e-85e9-f53bf2615c21", "rel": "self"}, {"href": "http://localhost/deploy_templates/1bb139d9-677f-465e-85e9-f53bf2615c21", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +API ACL Testing Path patch /v1/deploy_templates/af508579-fd2b-43a3-9498-084459988949 +PATCH: /v1/deploy_templates/af508579-fd2b-43a3-9498-084459988949 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6040660d-3ea3-441c-81ef-b34fbb7c13d8 +Openstack-Request-Id: req-928b6898-2c83-451a-b05c-bfb47184138a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-6040660d-3ea3-441c-81ef-b34fbb7c13d8 +Openstack-Request-Id: req-928b6898-2c83-451a-b05c-bfb47184138a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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/bc9c700d-4db4-4972-987e-736622d17be0 -PATCH: /v1/deploy_templates/bc9c700d-4db4-4972-987e-736622d17be0 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] +API ACL Testing Path patch /v1/deploy_templates/e54d8230-b828-44ce-bd57-290d1dd09d1b +PATCH: /v1/deploy_templates/e54d8230-b828-44ce-bd57-290d1dd09d1b [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-4b57edb3-1a36-4020-b33a-ba5f4601bb16 +Openstack-Request-Id: req-070f9675-ac3b-4858-a318-c1361264ce32 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-4b57edb3-1a36-4020-b33a-ba5f4601bb16 +Openstack-Request-Id: req-070f9675-ac3b-4858-a318-c1361264ce32 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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/8b73ce04-c39d-4572-b804-c6b1b0ee3b2b -DELETE: /v1/deploy_templates/8b73ce04-c39d-4572-b804-c6b1b0ee3b2b +API ACL Testing Path delete /v1/deploy_templates/92784fd7-f807-4799-a583-622e536e9bc4 +DELETE: /v1/deploy_templates/92784fd7-f807-4799-a583-622e536e9bc4 GOT:Response: 204 No Content -Openstack-Request-Id: req-0c457ccc-bc7b-4759-af11-138f1330201b +Openstack-Request-Id: req-03f90b1d-96d5-44e5-aeaa-55ee39a58250 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-0c457ccc-bc7b-4759-af11-138f1330201b +Openstack-Request-Id: req-03f90b1d-96d5-44e5-aeaa-55ee39a58250 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/bcdee5e3-5b0b-43e2-83d3-9f13636955f5 -DELETE: /v1/deploy_templates/bcdee5e3-5b0b-43e2-83d3-9f13636955f5 +API ACL Testing Path delete /v1/deploy_templates/7b41c208-540b-4f99-a3b6-d3fa109bb0cb +DELETE: /v1/deploy_templates/7b41c208-540b-4f99-a3b6-d3fa109bb0cb GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3c983570-22c0-4a40-990a-ffef6a2bf2ea +Openstack-Request-Id: req-956261d5-93a1-4a0b-89ac-721e5b9d43fd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-3c983570-22c0-4a40-990a-ffef6a2bf2ea +Openstack-Request-Id: req-956261d5-93a1-4a0b-89ac-721e5b9d43fd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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/d4c78789-66c4-49c1-b335-04dcce27b06d -DELETE: /v1/deploy_templates/d4c78789-66c4-49c1-b335-04dcce27b06d +API ACL Testing Path delete /v1/deploy_templates/af652e22-6e94-41a0-be80-069e153a5954 +DELETE: /v1/deploy_templates/af652e22-6e94-41a0-be80-069e153a5954 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-4b0e0d34-10ae-42bd-a34f-0bf2fc0faa4b +Openstack-Request-Id: req-694eb17a-a8e4-485d-8eca-adbf3292a538 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-4b0e0d34-10ae-42bd-a34f-0bf2fc0faa4b +Openstack-Request-Id: req-694eb17a-a8e4-485d-8eca-adbf3292a538 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42053,268 +39810,314 @@ POST: /v1/chassis {'description': 'test-chassis'} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/chassis/e846ab71-2c50-486b-9de6-7c535134b3ed -Openstack-Request-Id: req-4dc086f2-09eb-4d50-b9e5-3d0735e336e4 +Location: http://localhost/v1/chassis/3334582e-a4cb-4044-8b5b-b6808e1a7bce +Openstack-Request-Id: req-499e85d0-69be-41b2-ba56-8d336261ea74 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e846ab71-2c50-486b-9de6-7c535134b3ed", "created_at": "2024-01-06T10:57:39.021120+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e846ab71-2c50-486b-9de6-7c535134b3ed", "rel": "self"}, {"href": "http://localhost/chassis/e846ab71-2c50-486b-9de6-7c535134b3ed", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e846ab71-2c50-486b-9de6-7c535134b3ed/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e846ab71-2c50-486b-9de6-7c535134b3ed/nodes", "rel": "bookmark"}]]} +{"uuid": "3334582e-a4cb-4044-8b5b-b6808e1a7bce", "created_at": "2025-02-07T17:34:01.393683+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/3334582e-a4cb-4044-8b5b-b6808e1a7bce", "rel": "self"}, {"href": "http://localhost/chassis/3334582e-a4cb-4044-8b5b-b6808e1a7bce", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/3334582e-a4cb-4044-8b5b-b6808e1a7bce/nodes", "rel": "self"}, {"href": "http://localhost/chassis/3334582e-a4cb-4044-8b5b-b6808e1a7bce/nodes", "rel": "bookmark"}]]} ACL Test GOT Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/chassis/e846ab71-2c50-486b-9de6-7c535134b3ed -Openstack-Request-Id: req-4dc086f2-09eb-4d50-b9e5-3d0735e336e4 +Location: http://localhost/v1/chassis/3334582e-a4cb-4044-8b5b-b6808e1a7bce +Openstack-Request-Id: req-499e85d0-69be-41b2-ba56-8d336261ea74 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e846ab71-2c50-486b-9de6-7c535134b3ed", "created_at": "2024-01-06T10:57:39.021120+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e846ab71-2c50-486b-9de6-7c535134b3ed", "rel": "self"}, {"href": "http://localhost/chassis/e846ab71-2c50-486b-9de6-7c535134b3ed", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e846ab71-2c50-486b-9de6-7c535134b3ed/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e846ab71-2c50-486b-9de6-7c535134b3ed/nodes", "rel": "bookmark"}]]} +{"uuid": "3334582e-a4cb-4044-8b5b-b6808e1a7bce", "created_at": "2025-02-07T17:34:01.393683+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/3334582e-a4cb-4044-8b5b-b6808e1a7bce", "rel": "self"}, {"href": "http://localhost/chassis/3334582e-a4cb-4044-8b5b-b6808e1a7bce", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/3334582e-a4cb-4044-8b5b-b6808e1a7bce/nodes", "rel": "self"}, {"href": "http://localhost/chassis/3334582e-a4cb-4044-8b5b-b6808e1a7bce/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-95edd6d5-f546-44e4-a863-cff35d717340 +Openstack-Request-Id: req-fa3a70fd-641d-4fb2-be41-d0242c6e6621 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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.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.db.test_ports.DbPortTestCase.test_get_port_list +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list ... 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_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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.HeartbeatMixinTest.test_heartbeat_rescue_fails +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_rescue_fails ... 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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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_285_chassis_get_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_285_chassis_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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_096_nodes_traits_trait_delete_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_096_nodes_traits_trait_delete_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.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.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.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.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.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_097_nodes_vifs_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_097_nodes_vifs_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_url_missing -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_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.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.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 -/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.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.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps ... ok -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-2fb3c90e-a201-4a3f-b7bd-96141b24dba8 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-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}"} -API ACL Testing Path patch /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 -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-9db634f8-47a4-40b4-a25a-de9436daf2dd -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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-9db634f8-47a4-40b4-a25a-de9436daf2dd -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 -PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/lessee', 'value': '1234'}] -GOT:Response: 503 Service Unavailable +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.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_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.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.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.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 +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.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.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config +ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config ... ok +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4399ba73-42d7-446b-b573-e8d6c114ad67 +Openstack-Request-Id: req-23a32986-7675-42c6-8224-d5bc8ab28a89 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"history": [{"uuid": "fe60b86e-33b4-400b-aea8-a5ed0e4430e8", "created_at": "2025-02-07T17:34:01.168320+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/fe60b86e-33b4-400b-aea8-a5ed0e4430e8", "rel": "self"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4399ba73-42d7-446b-b573-e8d6c114ad67 +Openstack-Request-Id: req-23a32986-7675-42c6-8224-d5bc8ab28a89 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 -PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/owner', 'value': '1234'}] -GOT:Response: 403 Forbidden +{"history": [{"uuid": "fe60b86e-33b4-400b-aea8-a5ed0e4430e8", "created_at": "2025-02-07T17:34:01.168320+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/fe60b86e-33b4-400b-aea8-a5ed0e4430e8", "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-f1c21bfc-aaf3-4f5c-b130-167e9905c3de +Openstack-Request-Id: req-132d8385-439e-4672-bc69-e40c2aa85c1d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-f1c21bfc-aaf3-4f5c-b130-167e9905c3de +Openstack-Request-Id: req-132d8385-439e-4672-bc69-e40c2aa85c1d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} -API ACL Testing Path patch /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 -PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/owner', 'value': '1234'}] -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 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0fc472cd-55b2-4de7-8861-7f690019e1ac +Openstack-Request-Id: req-bee0a0df-2084-4455-9486-5f5b115125eb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"history": [{"uuid": "aea2788c-b5c2-46d3-8364-de5ffb222eef", "created_at": "2025-02-07T17:34:01.332913+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/aea2788c-b5c2-46d3-8364-de5ffb222eef", "rel": "self"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0fc472cd-55b2-4de7-8861-7f690019e1ac +Openstack-Request-Id: req-bee0a0df-2084-4455-9486-5f5b115125eb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} -API ACL Testing Path patch /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f -PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/protected', 'value': True}] -GOT:Response: 503 Service Unavailable +{"history": [{"uuid": "aea2788c-b5c2-46d3-8364-de5ffb222eef", "created_at": "2025-02-07T17:34:01.332913+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/aea2788c-b5c2-46d3-8364-de5ffb222eef", "rel": "self"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/67f992ae-00f3-4975-a6ed-c1a9203ae38a +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/67f992ae-00f3-4975-a6ed-c1a9203ae38a {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4f18d46a-b0b4-4259-8831-0801eef77ac2 +Openstack-Request-Id: req-8c4e6b95-19b3-4b96-9d10-1e2baa2217ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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": "67f992ae-00f3-4975-a6ed-c1a9203ae38a", "created_at": "2025-02-07T17:34:01.405420+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/67f992ae-00f3-4975-a6ed-c1a9203ae38a", "rel": "self"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4f18d46a-b0b4-4259-8831-0801eef77ac2 +Openstack-Request-Id: req-8c4e6b95-19b3-4b96-9d10-1e2baa2217ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f -PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] -GOT:Response: 403 Forbidden +{"uuid": "67f992ae-00f3-4975-a6ed-c1a9203ae38a", "created_at": "2025-02-07T17:34:01.405420+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/67f992ae-00f3-4975-a6ed-c1a9203ae38a", "rel": "self"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/a6eaf77a-d9df-46e3-88c6-5743df3b47f3 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/a6eaf77a-d9df-46e3-88c6-5743df3b47f3 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-bcc7a3ef-9e04-462e-b6d6-765cd5a88a68 +Openstack-Request-Id: req-c15b8322-f61a-4fbc-92f6-657d3931347f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-bcc7a3ef-9e04-462e-b6d6-765cd5a88a68 +Openstack-Request-Id: req-c15b8322-f61a-4fbc-92f6-657d3931347f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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': '/driver_info', '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 get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/640609a4-4072-4169-a591-cb6a23459f6a +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/640609a4-4072-4169-a591-cb6a23459f6a {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3bff3e38-717d-4d0f-a65c-5b5aab8b16b9 +Openstack-Request-Id: req-250800a0-3f41-426e-ba69-a01549db48b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"uuid": "640609a4-4072-4169-a591-cb6a23459f6a", "created_at": "2025-02-07T17:34:01.557551+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/640609a4-4072-4169-a591-cb6a23459f6a", "rel": "self"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3bff3e38-717d-4d0f-a65c-5b5aab8b16b9 +Openstack-Request-Id: req-250800a0-3f41-426e-ba69-a01549db48b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} -API ACL Testing Path patch /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f -PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/properties', 'value': {'test': 'testing'}}] +{"uuid": "640609a4-4072-4169-a591-cb6a23459f6a", "created_at": "2025-02-07T17:34:01.557551+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/640609a4-4072-4169-a591-cb6a23459f6a", "rel": "self"}]} +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-6a0541aa-d57e-4acd-89c0-4e5a3f48a50e +Openstack-Request-Id: req-66406335-ac99-438d-ba4c-0c4e2f508e5d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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.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.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.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.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_mismatch -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_mismatch ... 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.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.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_agent_base.TestRefreshCleanSteps.test_refresh_steps_busy +ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_busy ... 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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.db.test_ports.DbPortTestCase.test_update_port +ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port ... 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 ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-95edd6d5-f546-44e4-a863-cff35d717340 +Openstack-Request-Id: req-fa3a70fd-641d-4fb2-be41-d0242c6e6621 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42323,14 +40126,14 @@ POST: /v1/chassis {'description': 'test-chassis'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-decf8618-0e91-423e-ad6b-f85307d5d085 +Openstack-Request-Id: req-4dfa5919-e0ee-4712-8b84-1038257ad1ba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-decf8618-0e91-423e-ad6b-f85307d5d085 +Openstack-Request-Id: req-4dfa5919-e0ee-4712-8b84-1038257ad1ba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42339,14 +40142,14 @@ GET: /v1/chassis {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1a64278d-aeab-4317-94ab-3187c95e57e5 +Openstack-Request-Id: req-b01a65a7-62ce-4dfd-b0b4-bed83e80703a 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-1a64278d-aeab-4317-94ab-3187c95e57e5 +Openstack-Request-Id: req-b01a65a7-62ce-4dfd-b0b4-bed83e80703a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42355,14 +40158,14 @@ GET: /v1/chassis {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-41ac8a27-f6c8-43fe-87ad-981023ac9344 +Openstack-Request-Id: req-199618c1-bed0-422e-9076-ed2f2015ed06 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-41ac8a27-f6c8-43fe-87ad-981023ac9344 +Openstack-Request-Id: req-199618c1-bed0-422e-9076-ed2f2015ed06 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42371,14 +40174,14 @@ GET: /v1/chassis {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b5ea0866-0f92-4fc8-96dc-506096466167 +Openstack-Request-Id: req-d57787fa-6a0b-4120-823b-547ccc0457ac 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-b5ea0866-0f92-4fc8-96dc-506096466167 +Openstack-Request-Id: req-d57787fa-6a0b-4120-823b-547ccc0457ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42387,514 +40190,856 @@ GET: /v1/chassis/detail {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c63c6c9f-2e59-4041-914c-7fbdcd9f1cf8 +Openstack-Request-Id: req-94680cb8-ae08-415d-ac43-423a8c0689bc 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-06T10:57:39.409264+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"}]]}]} +{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:34:01.838928+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-c63c6c9f-2e59-4041-914c-7fbdcd9f1cf8 +Openstack-Request-Id: req-94680cb8-ae08-415d-ac43-423a8c0689bc 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-06T10:57:39.409264+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"}]]}]} +{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:34:01.838928+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-50cec37e-215b-49ce-aa06-a047a1ec9664 +Openstack-Request-Id: req-57c703b7-934e-4ec9-bc52-88d95dfbe60b 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-06T10:57:39.476583+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"}]]}]} +{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:34:01.934618+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.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.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.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.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.db.test_ports.DbPortTestCase.test_update_port_duplicated_address +ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_duplicated_address ... 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.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.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_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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step ... ok -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} -GOT:Response: 404 Not Found +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.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base +ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base ... ok +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-11f9b808-661e-4a99-8414-6af7250f0827 +Openstack-Request-Id: req-f118b09c-6170-45bb-81c7-984f36125f6b X-Openstack-Ironic-Api-Maximum-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: 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-02ff95c8-8d34-4dea-830d-4632a2c05080 +Openstack-Request-Id: req-f118b09c-6170-45bb-81c7-984f36125f6b X-Openstack-Ironic-Api-Maximum-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: 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/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 +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-6dfbdb7c-9572-4927-8bd0-2587716860ce +Openstack-Request-Id: req-cef98f16-51ee-49bb-ac0e-c3193453f82c X-Openstack-Ironic-Api-Maximum-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: 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-0a9134aa-7a23-4db3-9884-be22f8433388 +Openstack-Request-Id: req-cef98f16-51ee-49bb-ac0e-c3193453f82c X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 +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-ff532564-ef26-42a6-a3dd-b1f4c08bdbce +Openstack-Request-Id: req-a2957492-13cb-4f27-895b-0353ed86bbe5 X-Openstack-Ironic-Api-Maximum-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: 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-eea39792-3f4d-4c7a-b030-d482f08e5e0c +Openstack-Request-Id: req-a2957492-13cb-4f27-895b-0353ed86bbe5 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 +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-3c49ee5b-eb3b-49d0-998d-11c0a964bf43 +Openstack-Request-Id: req-68092649-3f22-42ed-8fff-c8a4fc588f09 X-Openstack-Ironic-Api-Maximum-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: 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-ed81bb98-47e3-413b-b92e-9a825842b0b6 +Openstack-Request-Id: req-68092649-3f22-42ed-8fff-c8a4fc588f09 X-Openstack-Ironic-Api-Maximum-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: 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/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 +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-61ea01ce-8fd6-46d4-810f-e04df41bdcb2 +Openstack-Request-Id: req-6fc8f638-93f6-42a0-a7a0-805232f77c94 X-Openstack-Ironic-Api-Maximum-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: 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-c92f299b-1f83-4608-a878-2d1f73438311 +Openstack-Request-Id: req-6fc8f638-93f6-42a0-a7a0-805232f77c94 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 +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-03f35b3f-6e92-4396-99e8-5373040868d8 +Openstack-Request-Id: req-7b98bcfa-ef45-4674-ad1a-e17ad38d4031 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"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-76bfdda0-0d12-4041-9b11-406685702515 +Openstack-Request-Id: req-7b98bcfa-ef45-4674-ad1a-e17ad38d4031 X-Openstack-Ironic-Api-Maximum-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 {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"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 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-87cea2d3-bab0-4c73-bacd-bb4421d7db89 +Openstack-Request-Id: req-2d1c3dac-3670-484a-9b77-50a585909b8b X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"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-42471b1c-4b2c-4212-9be1-9ff986d062ad +Openstack-Request-Id: req-2d1c3dac-3670-484a-9b77-50a585909b8b X-Openstack-Ironic-Api-Maximum-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'} -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.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.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.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.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 +{"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/management/indicators +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/indicators {} +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-1501813b-9fe3-4ba5-abb0-380d32675fc9 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-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-1501813b-9fe3-4ba5-abb0-380d32675fc9 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-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/indicators +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.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.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.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.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_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.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.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.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.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.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.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.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.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_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.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.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config +ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config ... 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.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.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.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_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.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.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_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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_010_nodes_get_other_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_010_nodes_get_other_admin ... 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.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.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_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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.ibmc.test_management.IBMCManagementTestCase.test_get_properties +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_properties ... 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_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.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.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.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.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_management.IBMCManagementTestCase.test_get_sensors_data +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_sensors_data ... 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_management.RedfishManagementTestCase.test_update_firmware +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware ... 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.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 +/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_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_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.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_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.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.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_modes +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_modes ... ok ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-50cec37e-215b-49ce-aa06-a047a1ec9664 +Openstack-Request-Id: req-57c703b7-934e-4ec9-bc52-88d95dfbe60b 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-06T10:57:39.476583+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"}]]}]} +{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:34:01.934618+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-2bb85b6d-ec73-454c-a1d1-1b997c9a45ad +Openstack-Request-Id: req-e75e8c11-81bc-49bb-95ef-f00c8602afd2 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-06T10:57:39.544840+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"}]]}]} +{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:34:02.004339+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-2bb85b6d-ec73-454c-a1d1-1b997c9a45ad +Openstack-Request-Id: req-e75e8c11-81bc-49bb-95ef-f00c8602afd2 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-06T10:57:39.544840+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"}]]}]} +{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:34:02.004339+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-c7b794c1-07ab-4185-bd7f-5f8c633d4b0f +Openstack-Request-Id: req-fa1db57f-9357-4cfb-9a1c-745d7c5ac367 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": "2024-01-06T10:57:39.612036+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"}]]} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:34:02.291478+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-c7b794c1-07ab-4185-bd7f-5f8c633d4b0f +Openstack-Request-Id: req-fa1db57f-9357-4cfb-9a1c-745d7c5ac367 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": "2024-01-06T10:57:39.612036+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"}]]} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:34:02.291478+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-4bce0051-dd17-4649-9396-30ca8beb7cee +Openstack-Request-Id: req-f45cf08c-8b4c-4ee5-8fca-149229745630 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": "2024-01-06T10:57:39.680280+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"}]]} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:34:02.360167+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-4bce0051-dd17-4649-9396-30ca8beb7cee +Openstack-Request-Id: req-f45cf08c-8b4c-4ee5-8fca-149229745630 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": "2024-01-06T10:57:39.680280+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"}]]} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:34:02.360167+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-dce3df3f-0334-4641-b14e-203d2e331d0c +Openstack-Request-Id: req-1d38649b-2046-478b-99a5-34b1930df556 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": "2024-01-06T10:57:39.747745+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"}]]} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:34:02.432675+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-dce3df3f-0334-4641-b14e-203d2e331d0c +Openstack-Request-Id: req-1d38649b-2046-478b-99a5-34b1930df556 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": "2024-01-06T10:57:39.747745+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"}]]} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:34:02.432675+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.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate ... 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.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.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.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi ... 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.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.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.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.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.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.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.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.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.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi_fail +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi_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.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.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_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_management.IBMCManagementTestCase.test_set_boot_device +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device ... 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.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.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.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.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.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.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.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.redfish.test_management.RedfishManagementTestCase.test_validate +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_validate ... 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.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.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 +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-48253c5e-02fa-417f-a2bd-02ead126d387 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-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-48253c5e-02fa-417f-a2bd-02ead126d387 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-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-7810412d-8e6d-41ca-8e97-ce672b03690f +X-Openstack-Ironic-Api-Maximum-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-7810412d-8e6d-41ca-8e97-ce672b03690f +X-Openstack-Ironic-Api-Maximum-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 +Content-Type: application/json +Openstack-Request-Id: req-40b42dd4-6d97-470e-a200-8f3202f61cea +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-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-40b42dd4-6d97-470e-a200-8f3202f61cea +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-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 +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-9ad97b50-5e55-4b04-bd02-4fba3ca9b9ae +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-9ad97b50-5e55-4b04-bd02-4fba3ca9b9ae +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-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 +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-6fa45deb-9cac-4b2e-84c9-f065b0b1961a +X-Openstack-Ironic-Api-Maximum-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-6fa45deb-9cac-4b2e-84c9-f065b0b1961a +X-Openstack-Ironic-Api-Maximum-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 +Content-Type: application/json +Openstack-Request-Id: req-081373d8-829d-4848-a6bd-efd3206fc15a +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 +Content-Type: application/json +Openstack-Request-Id: req-081373d8-829d-4848-a6bd-efd3206fc15a +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 {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-96ad01e2-735b-4b60-8b87-79e26bf2a4f7 +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-96ad01e2-735b-4b60-8b87-79e26bf2a4f7 +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.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.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_management.IBMCManagementTestCase.test_set_boot_mode +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode ... 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.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.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_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.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.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.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.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.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.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.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.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.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.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.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_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.test_pxe.PXEBootTestCase.test_prepare_ramdisk_cleaning +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_cleaning ... 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.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.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.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.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_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.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.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 -ACL Test GOT Response: 403 Forbidden +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.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.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.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_prepare_ramdisk_conflicting_boot_modes +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes ... 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.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.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.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_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged ... ok +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6a0541aa-d57e-4acd-89c0-4e5a3f48a50e +Openstack-Request-Id: req-80882d2e-a063-4d85-b6f5-a924bd1139e2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} -API ACL Testing Path patch /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f -PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/network_data', 'value': {'links': [], 'networks': [], 'services': []}}] +{"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-eea1909e-b1fc-44cb-85e8-9a5bc863ddd1 +Openstack-Request-Id: req-a003bcca-467c-49aa-8637-1912c3776d1d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-db841b55-916b-453e-aea1-aee1b2b433c2 +X-Openstack-Ironic-Api-Maximum-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-eea1909e-b1fc-44cb-85e8-9a5bc863ddd1 +Openstack-Request-Id: req-ceed2423-d159-422b-acd6-6586bf5f89c5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} -API ACL Testing Path patch /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f -PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/name', 'value': 'meow-node-1'}] -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 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1411a2fb-09a1-4b2a-95e3-efa7038c53f1 +Openstack-Request-Id: req-943e672b-4497-4eed-9556-5d3fbe45fd90 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-1411a2fb-09a1-4b2a-95e3-efa7038c53f1 +Openstack-Request-Id: req-567e127a-8fcd-4957-8cec-913d98977d35 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} -API ACL Testing Path patch /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f -PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/retired', 'value': True}, {'op': 'replace', 'path': '/retired_reason', 'value': '43'}] +{"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-923bd3d3-fe97-403b-9494-af96ef153bb1 +Openstack-Request-Id: req-85b573ff-a638-4828-87c5-8f4eb54f741a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-923bd3d3-fe97-403b-9494-af96ef153bb1 +Openstack-Request-Id: req-e38af8f1-56ca-4af2-a575-0f7dee03c8e7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} -API ACL Testing Path patch /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 -PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] -GOT:Response: 503 Service Unavailable +{"nodes": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-bae545bb-9be5-4f7d-9efd-928e90d8ec64 +Openstack-Request-Id: req-e38af8f1-56ca-4af2-a575-0f7dee03c8e7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"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-bae545bb-9be5-4f7d-9efd-928e90d8ec64 +Openstack-Request-Id: req-1b167c80-a90b-4a87-b10f-be992734282f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 -PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/instance_info', '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-5c34019b-0218-41e6-a8ed-03820b125d7a +Openstack-Request-Id: req-a4a01c92-78c4-49cd-8942-28815bf95858 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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/detail +GET: /v1/nodes/detail {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-5c34019b-0218-41e6-a8ed-03820b125d7a +Openstack-Request-Id: req-da00fe20-6407-48cc-9618-5ef3118ae0d2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 -PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/instance_info', '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/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-7c0e9295-f2da-47cb-8133-46d685a8b4d6 +Openstack-Request-Id: req-ef54352f-edbc-457d-83bd-2d8d3b8d83e7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7c0e9295-f2da-47cb-8133-46d685a8b4d6 +Openstack-Request-Id: req-8bd13059-6e55-44eb-9ab8-63f1d13318bf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 -PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/instance_info', '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 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-5e58109c-f78b-4a36-8012-65265a99fdfa +Openstack-Request-Id: req-6fb2ba37-e86e-489d-af49-30fd391307be X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-5e58109c-f78b-4a36-8012-65265a99fdfa +Openstack-Request-Id: req-facf3d86-aa9d-4c1d-a50d-1f07f196274d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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 +{"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_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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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_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.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_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue ... 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.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 GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-18ee35f6-19cf-4f4f-a99c-ae2e3a78af8b +Openstack-Request-Id: req-b1ea6787-1db8-4705-aeb2-3930cf6982a2 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": "2024-01-06T10:57:39.816002+00:00", "updated_at": "2024-01-06T10:57:39.847341+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"}]]} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:34:02.502091+00:00", "updated_at": "2025-02-07T17:34:02.533372+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-18ee35f6-19cf-4f4f-a99c-ae2e3a78af8b +Openstack-Request-Id: req-b1ea6787-1db8-4705-aeb2-3930cf6982a2 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": "2024-01-06T10:57:39.816002+00:00", "updated_at": "2024-01-06T10:57:39.847341+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"}]]} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:34:02.502091+00:00", "updated_at": "2025-02-07T17:34:02.533372+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-dd6981e3-eda7-43b5-8445-25dc7de5940b +Openstack-Request-Id: req-47af316f-5720-4d0d-9279-aae3c95477b6 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": "2024-01-06T10:57:39.888056+00:00", "updated_at": "2024-01-06T10:57:39.919051+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"}]]} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:34:02.588014+00:00", "updated_at": "2025-02-07T17:34:02.622479+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-dd6981e3-eda7-43b5-8445-25dc7de5940b +Openstack-Request-Id: req-47af316f-5720-4d0d-9279-aae3c95477b6 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": "2024-01-06T10:57:39.888056+00:00", "updated_at": "2024-01-06T10:57:39.919051+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"}]]} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T17:34:02.588014+00:00", "updated_at": "2025-02-07T17:34:02.622479+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-17ecc42d-6e02-493f-85e3-a13107a7415d +Openstack-Request-Id: req-64d6e6f9-c64a-4d9e-84ad-afe242431e07 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json -Openstack-Request-Id: req-17ecc42d-6e02-493f-85e3-a13107a7415d +Openstack-Request-Id: req-64d6e6f9-c64a-4d9e-84ad-afe242431e07 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42902,13 +41047,13 @@ 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-76c8d8db-fb17-4dc9-b2f5-a9778a96cc6e +Openstack-Request-Id: req-b97b057a-2108-40e8-bf9e-87438b600742 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-76c8d8db-fb17-4dc9-b2f5-a9778a96cc6e +Openstack-Request-Id: req-b97b057a-2108-40e8-bf9e-87438b600742 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42917,14 +41062,14 @@ DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9b4da33e-dbe9-4885-bf1c-da157156c336 +Openstack-Request-Id: req-0a9994d8-6c99-48e7-9478-d9a57d3e4329 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json -Openstack-Request-Id: req-9b4da33e-dbe9-4885-bf1c-da157156c336 +Openstack-Request-Id: req-0a9994d8-6c99-48e7-9478-d9a57d3e4329 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42933,14 +41078,14 @@ DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-359b1b00-a0ac-42db-be76-624c7c56a1be +Openstack-Request-Id: req-dd6c39bb-8ecb-41a2-a6e6-df33359bad1e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json -Openstack-Request-Id: req-359b1b00-a0ac-42db-be76-624c7c56a1be +Openstack-Request-Id: req-dd6c39bb-8ecb-41a2-a6e6-df33359bad1e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42949,5298 +41094,7257 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-bc904db1-71aa-44ba-a06f-15f82576c6fe +Openstack-Request-Id: req-e298f6ab-737c-46ee-8864-fb21103367e3 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": "3d36ae99-171e-4914-a1fc-1e4fad55d6d0", "created_at": "2024-01-06T10:57:40.257169+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3d36ae99-171e-4914-a1fc-1e4fad55d6d0", "rel": "self"}]}]} +{"history": [{"uuid": "4b8a0101-63e6-4292-acf5-b86b25bdbe63", "created_at": "2025-02-07T17:34:03.020018+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/4b8a0101-63e6-4292-acf5-b86b25bdbe63", "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.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.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.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.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.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.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_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.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.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_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.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.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.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.test_pxe.PXEAnacondaDeployTestCase.test_deploy -ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_deploy ... 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.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_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.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.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.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_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.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.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_validate -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_validate ... 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_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_end -ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_end ... 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.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.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.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_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 +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-0dd7b8ab-1127-41d4-b516-ffc87ae0bde6 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"portgroups": []} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-0dd7b8ab-1127-41d4-b516-ffc87ae0bde6 +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 {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-be31bd2b-fa98-4abe-8253-4e6636e4096d +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-07T17:34:02.773878+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-be31bd2b-fa98-4abe-8253-4e6636e4096d +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-07T17:34:02.773878+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-849b16de-cb55-46c2-88a0-3bd4b8eb906f +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-07T17:34:02.874509+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-849b16de-cb55-46c2-88a0-3bd4b8eb906f +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-07T17:34:02.874509+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-96c8bf15-1468-4144-a5a3-64b4a484693a +X-Openstack-Ironic-Api-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}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-96c8bf15-1468-4144-a5a3-64b4a484693a +X-Openstack-Ironic-Api-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/8a3a3091-7932-41c2-b38c-879d8d15e00a +Openstack-Request-Id: req-dc1a7234-2472-4a9a-add6-bbb20042edc8 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "8a3a3091-7932-41c2-b38c-879d8d15e00a", "created_at": "2025-02-07T17:34:03.090629+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/8a3a3091-7932-41c2-b38c-879d8d15e00a", "rel": "self"}, {"href": "http://localhost/portgroups/8a3a3091-7932-41c2-b38c-879d8d15e00a", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "ports": [{"href": "http://localhost/v1/portgroups/8a3a3091-7932-41c2-b38c-879d8d15e00a/ports", "rel": "self"}, {"href": "http://localhost/portgroups/8a3a3091-7932-41c2-b38c-879d8d15e00a/ports", "rel": "bookmark"}]} +ACL Test GOT Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/portgroups/8a3a3091-7932-41c2-b38c-879d8d15e00a +Openstack-Request-Id: req-dc1a7234-2472-4a9a-add6-bbb20042edc8 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "8a3a3091-7932-41c2-b38c-879d8d15e00a", "created_at": "2025-02-07T17:34:03.090629+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/8a3a3091-7932-41c2-b38c-879d8d15e00a", "rel": "self"}, {"href": "http://localhost/portgroups/8a3a3091-7932-41c2-b38c-879d8d15e00a", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "ports": [{"href": "http://localhost/v1/portgroups/8a3a3091-7932-41c2-b38c-879d8d15e00a/ports", "rel": "self"}, {"href": "http://localhost/portgroups/8a3a3091-7932-41c2-b38c-879d8d15e00a/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_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.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.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_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_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.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_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.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.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.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_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_error -ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_error ... 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.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.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_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_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.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.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.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.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_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.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_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.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.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.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.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.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.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.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.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.test_pxe.PXEAnacondaDeployTestCase.test_prepare -ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare ... 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.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.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.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.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.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.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.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.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.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.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.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.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare_active -ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare_active ... 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_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_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.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.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_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.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_healthcheck.TestHealthcheckMiddleware.test_disable +ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable ... 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.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.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_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.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.api.test_healthcheck.TestHealthcheckMiddleware.test_enable +ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable ... 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.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.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.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.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.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.test_pxe.PXEAnacondaDeployTestCase.test_prepare_cleaning -ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare_cleaning ... 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.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.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.test_fake_hardware.FakeHardwareTestCase.test_boot_interface -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface ... 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.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.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_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_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi ... 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.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.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.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.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.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.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.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.drac.test_raid.DracRedfishRAIDTestCase.test__is_realtime_ready +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__is_realtime_ready ... ok ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-bc904db1-71aa-44ba-a06f-15f82576c6fe +Openstack-Request-Id: req-e298f6ab-737c-46ee-8864-fb21103367e3 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": "3d36ae99-171e-4914-a1fc-1e4fad55d6d0", "created_at": "2024-01-06T10:57:40.257169+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3d36ae99-171e-4914-a1fc-1e4fad55d6d0", "rel": "self"}]}]} +{"history": [{"uuid": "4b8a0101-63e6-4292-acf5-b86b25bdbe63", "created_at": "2025-02-07T17:34:03.020018+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/4b8a0101-63e6-4292-acf5-b86b25bdbe63", "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-88fde2ac-1a53-4de9-a684-72e895c295e9 +Openstack-Request-Id: req-11f1fd13-a11e-4693-acf5-50615918edb3 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": "94d4dadd-dbbb-4025-8346-58b5b1ef0266", "created_at": "2024-01-06T10:57:40.332517+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/94d4dadd-dbbb-4025-8346-58b5b1ef0266", "rel": "self"}]}]} +{"history": [{"uuid": "b0fb2a17-f9bc-41f3-945d-220de522a58d", "created_at": "2025-02-07T17:34:03.121982+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/b0fb2a17-f9bc-41f3-945d-220de522a58d", "rel": "self"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-88fde2ac-1a53-4de9-a684-72e895c295e9 +Openstack-Request-Id: req-11f1fd13-a11e-4693-acf5-50615918edb3 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": "94d4dadd-dbbb-4025-8346-58b5b1ef0266", "created_at": "2024-01-06T10:57:40.332517+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/94d4dadd-dbbb-4025-8346-58b5b1ef0266", "rel": "self"}]}]} +{"history": [{"uuid": "b0fb2a17-f9bc-41f3-945d-220de522a58d", "created_at": "2025-02-07T17:34:03.121982+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/b0fb2a17-f9bc-41f3-945d-220de522a58d", "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-1655c224-14c3-43ea-9cc5-12e8f9d37b41 +Openstack-Request-Id: req-20100dbe-fb2d-4d99-91a4-2b5e78f0a313 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": "46402104-ea04-42b7-9f67-3b6d547d3dd7", "created_at": "2024-01-06T10:57:40.403976+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/46402104-ea04-42b7-9f67-3b6d547d3dd7", "rel": "self"}]}]} +{"history": [{"uuid": "2f98d158-b8a1-4f9e-8972-aabe40193f96", "created_at": "2025-02-07T17:34:03.192503+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/2f98d158-b8a1-4f9e-8972-aabe40193f96", "rel": "self"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1655c224-14c3-43ea-9cc5-12e8f9d37b41 +Openstack-Request-Id: req-20100dbe-fb2d-4d99-91a4-2b5e78f0a313 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": "46402104-ea04-42b7-9f67-3b6d547d3dd7", "created_at": "2024-01-06T10:57:40.403976+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/46402104-ea04-42b7-9f67-3b6d547d3dd7", "rel": "self"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/d1b159de-58c1-4bc5-8602-98eb86c8aacd -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/d1b159de-58c1-4bc5-8602-98eb86c8aacd {} +{"history": [{"uuid": "2f98d158-b8a1-4f9e-8972-aabe40193f96", "created_at": "2025-02-07T17:34:03.192503+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/2f98d158-b8a1-4f9e-8972-aabe40193f96", "rel": "self"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/0e584da3-d48e-4105-89e3-2f4d87f3a6ec +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/0e584da3-d48e-4105-89e3-2f4d87f3a6ec {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-cbf3bbdf-5de1-4f52-b404-66e4b7627c8d +Openstack-Request-Id: req-d3b6d110-3d58-45a6-ae27-47b74540ed16 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "d1b159de-58c1-4bc5-8602-98eb86c8aacd", "created_at": "2024-01-06T10:57:40.476156+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/d1b159de-58c1-4bc5-8602-98eb86c8aacd", "rel": "self"}]} +{"uuid": "0e584da3-d48e-4105-89e3-2f4d87f3a6ec", "created_at": "2025-02-07T17:34:03.269015+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/0e584da3-d48e-4105-89e3-2f4d87f3a6ec", "rel": "self"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-cbf3bbdf-5de1-4f52-b404-66e4b7627c8d +Openstack-Request-Id: req-d3b6d110-3d58-45a6-ae27-47b74540ed16 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "d1b159de-58c1-4bc5-8602-98eb86c8aacd", "created_at": "2024-01-06T10:57:40.476156+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/d1b159de-58c1-4bc5-8602-98eb86c8aacd", "rel": "self"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/859b50f0-8e7a-4b9e-b050-9dce8a96c533 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/859b50f0-8e7a-4b9e-b050-9dce8a96c533 {} +{"uuid": "0e584da3-d48e-4105-89e3-2f4d87f3a6ec", "created_at": "2025-02-07T17:34:03.269015+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/0e584da3-d48e-4105-89e3-2f4d87f3a6ec", "rel": "self"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3caafb69-6ead-4e87-802a-a7188cc4e84e +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3caafb69-6ead-4e87-802a-a7188cc4e84e {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3cac6fcb-7075-43b9-b27c-922e58da27e7 +Openstack-Request-Id: req-6840f026-7243-489c-b579-f0b11d69189d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "859b50f0-8e7a-4b9e-b050-9dce8a96c533", "created_at": "2024-01-06T10:57:40.548663+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/859b50f0-8e7a-4b9e-b050-9dce8a96c533", "rel": "self"}]} +{"uuid": "3caafb69-6ead-4e87-802a-a7188cc4e84e", "created_at": "2025-02-07T17:34:03.342225+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/3caafb69-6ead-4e87-802a-a7188cc4e84e", "rel": "self"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3cac6fcb-7075-43b9-b27c-922e58da27e7 +Openstack-Request-Id: req-6840f026-7243-489c-b579-f0b11d69189d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "859b50f0-8e7a-4b9e-b050-9dce8a96c533", "created_at": "2024-01-06T10:57:40.548663+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/859b50f0-8e7a-4b9e-b050-9dce8a96c533", "rel": "self"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/e4f23c27-5c93-4c47-ba49-a0a24a255e2c -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/e4f23c27-5c93-4c47-ba49-a0a24a255e2c {} +{"uuid": "3caafb69-6ead-4e87-802a-a7188cc4e84e", "created_at": "2025-02-07T17:34:03.342225+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/3caafb69-6ead-4e87-802a-a7188cc4e84e", "rel": "self"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3160a8ae-13b5-44b3-8412-5a29f30b2544 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3160a8ae-13b5-44b3-8412-5a29f30b2544 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-329d499f-278c-463a-8067-6dcb788ed3d7 +Openstack-Request-Id: req-610f5d39-cfbb-425e-ad81-d2d9eabbb764 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e4f23c27-5c93-4c47-ba49-a0a24a255e2c", "created_at": "2024-01-06T10:57:40.621295+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/e4f23c27-5c93-4c47-ba49-a0a24a255e2c", "rel": "self"}]} +{"uuid": "3160a8ae-13b5-44b3-8412-5a29f30b2544", "created_at": "2025-02-07T17:34:03.412754+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/3160a8ae-13b5-44b3-8412-5a29f30b2544", "rel": "self"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-329d499f-278c-463a-8067-6dcb788ed3d7 +Openstack-Request-Id: req-610f5d39-cfbb-425e-ad81-d2d9eabbb764 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e4f23c27-5c93-4c47-ba49-a0a24a255e2c", "created_at": "2024-01-06T10:57:40.621295+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/e4f23c27-5c93-4c47-ba49-a0a24a255e2c", "rel": "self"}]} +{"uuid": "3160a8ae-13b5-44b3-8412-5a29f30b2544", "created_at": "2025-02-07T17:34:03.412754+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/3160a8ae-13b5-44b3-8412-5a29f30b2544", "rel": "self"}]} 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: / {} 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.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.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.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface ... 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 -GOT:Response: 503 Service Unavailable +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.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_inspector.CommonFunctionsTestCase.test_get_callback_endpoint +ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint ... 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_glance_service.TestGlanceSerializer.test_serialize +ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize ... 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_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_nova.TestNovaAdapter.test_get_nova_adapter +ironic.tests.unit.common.test_nova.TestNovaAdapter.test_get_nova_adapter ... 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_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_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.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.common.test_rpc.TestRequestContextSerializer.test_deserialize_context +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context ... 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.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.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_rpc.TestRequestContextSerializer.test_deserialize_entity +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity ... 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.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.test_pxe.PXEBootTestCase.test_validate_good +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good ... 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_inspector.CommonFunctionsTestCase.test_get_callback_endpoint_override +ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint_override ... 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.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.common.test_rpc.TestRequestContextSerializer.test_serialize_entity +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity ... 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.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.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.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.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.test_inspector.CommonFunctionsTestCase.test_validate_ok +ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_validate_ok ... 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.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.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST +ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST ... 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.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off ... ok +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-d4a85d69-3f4b-4db2-abc7-951c8168146f +Location: http://localhost/v1/portgroups/98e7c540-9cd7-4bc3-8d55-d9cfcc1545fe +Openstack-Request-Id: req-ce6d2291-00a2-47ee-bd59-993842260c45 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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": "98e7c540-9cd7-4bc3-8d55-d9cfcc1545fe", "created_at": "2025-02-07T17:34:03.173639+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/98e7c540-9cd7-4bc3-8d55-d9cfcc1545fe", "rel": "self"}, {"href": "http://localhost/portgroups/98e7c540-9cd7-4bc3-8d55-d9cfcc1545fe", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "ports": [{"href": "http://localhost/v1/portgroups/98e7c540-9cd7-4bc3-8d55-d9cfcc1545fe/ports", "rel": "self"}, {"href": "http://localhost/portgroups/98e7c540-9cd7-4bc3-8d55-d9cfcc1545fe/ports", "rel": "bookmark"}]} +ACL Test GOT Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-d4a85d69-3f4b-4db2-abc7-951c8168146f +Location: http://localhost/v1/portgroups/98e7c540-9cd7-4bc3-8d55-d9cfcc1545fe +Openstack-Request-Id: req-ce6d2291-00a2-47ee-bd59-993842260c45 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f -PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] -GOT:Response: 503 Service Unavailable +{"uuid": "98e7c540-9cd7-4bc3-8d55-d9cfcc1545fe", "created_at": "2025-02-07T17:34:03.173639+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/98e7c540-9cd7-4bc3-8d55-d9cfcc1545fe", "rel": "self"}, {"href": "http://localhost/portgroups/98e7c540-9cd7-4bc3-8d55-d9cfcc1545fe", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "ports": [{"href": "http://localhost/v1/portgroups/98e7c540-9cd7-4bc3-8d55-d9cfcc1545fe/ports", "rel": "self"}, {"href": "http://localhost/portgroups/98e7c540-9cd7-4bc3-8d55-d9cfcc1545fe/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-fbf88939-eefb-4cfd-8a57-0a8d2073488b +Openstack-Request-Id: req-34d057d6-605c-419f-a00c-745934f7009c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-fbf88939-eefb-4cfd-8a57-0a8d2073488b +Openstack-Request-Id: req-34d057d6-605c-419f-a00c-745934f7009c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f -PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/instance_info', '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-04e4be6d-fa9a-45d6-8c0f-49b4e338daeb +Openstack-Request-Id: req-f79f1971-0f2f-435f-8d35-095c836f9478 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +{"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-04e4be6d-fa9a-45d6-8c0f-49b4e338daeb +Openstack-Request-Id: req-f79f1971-0f2f-435f-8d35-095c836f9478 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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'}}] +{"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-e4da0c92-257f-46ef-a960-f76eb4d4d3a0 +Openstack-Request-Id: req-f8bfc2c5-5cd0-4cc1-967d-7244e184f4fe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +{"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-e4da0c92-257f-46ef-a960-f76eb4d4d3a0 +Openstack-Request-Id: req-f8bfc2c5-5cd0-4cc1-967d-7244e184f4fe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 -PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] -GOT:Response: 404 Not Found +{"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-02f36c7c-6f43-45b5-8124-9cb6d3c9d8e5 +Openstack-Request-Id: req-4e69c72a-ccac-49e1-bbe7-c4b59a806a8e X-Openstack-Ironic-Api-Maximum-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 +{"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-02f36c7c-6f43-45b5-8124-9cb6d3c9d8e5 +Openstack-Request-Id: req-4e69c72a-ccac-49e1-bbe7-c4b59a806a8e X-Openstack-Ironic-Api-Maximum-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 -DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +{"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-90d728cd-3d8f-421e-b8d7-f9d5ef262c8b +Openstack-Request-Id: req-052f6f18-6628-4c18-a010-6afbc1cf88a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +{"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-90d728cd-3d8f-421e-b8d7-f9d5ef262c8b +Openstack-Request-Id: req-052f6f18-6628-4c18-a010-6afbc1cf88a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} -API ACL Testing Path delete /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 -DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +{"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-ad364c39-8182-4e6b-bcae-aa9f1b2cc664 +Openstack-Request-Id: req-c5e96da3-6791-4a77-b381-3afa911af1ec X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-ad364c39-8182-4e6b-bcae-aa9f1b2cc664 +Openstack-Request-Id: req-c5e96da3-6791-4a77-b381-3afa911af1ec X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 -DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 -GOT:Response: 403 Forbidden +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 +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.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.test_inspector.InspectHardwareTestCase.test_managed_custom_params +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_custom_params ... 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.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.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.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.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.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.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.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.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_inspector.InspectHardwareTestCase.test_managed_error +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_error ... 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.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.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.common.test_utils.GenericUtilsTestCase.test_is_fips_enabled +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_fips_enabled ... 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.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_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_off ... 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.test_inspector.InspectHardwareTestCase.test_managed_fast_track +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_fast_track ... 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.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.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_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_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset ... 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.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.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.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_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_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.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.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.common.test_utils.GenericUtilsTestCase.test_safe_rstrip +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip ... 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.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.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.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.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.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_inspector.InspectHardwareTestCase.test_managed_ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_ok ... 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.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_deploy +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_deploy ... ok +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-67b2552e-d72d-4896-9a6c-8766b81d5d8a +Openstack-Request-Id: req-a5578547-01a6-4864-b9dc-e906cfa8ca77 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-67b2552e-d72d-4896-9a6c-8766b81d5d8a +Openstack-Request-Id: req-9b988e15-6e37-4ad7-86ee-7254f06e3e4c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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.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.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.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces ... 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.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.test_fake_hardware.FakeHardwareTestCase.test_get_properties -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties ... 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.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.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_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_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.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_base.AgentRescueTests.test__finalize_rescue -ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue ... 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.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.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.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.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.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.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 +{"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-ee31f4ea-b07e-4ce7-baea-0d1d1456c3e5 +Openstack-Request-Id: req-de22c713-283c-4fcb-8a14-486aee444aa8 X-Openstack-Ironic-Api-Maximum-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'} +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-efffe6d3-6141-4b09-9189-a4a893ddc8be +Openstack-Request-Id: req-2a78782a-6ae5-41d8-b50b-ed74e351883b X-Openstack-Ironic-Api-Maximum-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'} +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-3704a5de-6ff6-4947-8b61-95aabdd234d1 +Openstack-Request-Id: req-d7df2f29-a329-4958-8088-d0bc9d2c2dbc X-Openstack-Ironic-Api-Maximum-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 +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-6feb3d32-0978-497b-bfde-1db4aabb015f +Openstack-Request-Id: req-31a15143-8a1e-4a09-bc62-9f2a7b24c6f7 X-Openstack-Ironic-Api-Maximum-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 +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-b09d5a90-3cb9-402b-bbdb-b0cab9f05725 +Openstack-Request-Id: req-9d4c9020-05cc-4a4b-8bdf-cea1278bbea7 X-Openstack-Ironic-Api-Maximum-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 +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-21bc2f8b-0c3e-4098-a902-7232d3ea532d +Openstack-Request-Id: req-d6d64a8b-18dd-4d9b-a7b4-b6b2a9aa5243 X-Openstack-Ironic-Api-Maximum-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 {} +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-af03eee6-2e5c-4dff-a867-ec2206e48e58 +Openstack-Request-Id: req-5ce59a1d-9c81-4654-ac44-82e9a5bbcba2 X-Openstack-Ironic-Api-Maximum-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 {} +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-846da904-1bd2-444e-8ca5-4e54556b484e +Openstack-Request-Id: req-8a1919ed-5094-4f80-83c6-d73d61bc43b0 X-Openstack-Ironic-Api-Maximum-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 {} +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-d33ca564-ebf6-4caf-8d0f-4112dddd93e9 +Openstack-Request-Id: req-b99d54b6-7f83-40c7-b1b8-a19e70b4e4f6 X-Openstack-Ironic-Api-Maximum-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 +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-e7f238e8-7f21-48fe-a12d-bbc103aa6807 +Openstack-Request-Id: req-c2fc6f1e-5d0f-49dd-89c9-ba7d87296c54 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-560f14c3-2497-4468-9cec-7deb23a76eb6 +Openstack-Request-Id: req-f94da9d1-938c-42a4-972c-3c22ccf640ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-8c9a5ded-3bf3-4a68-94d0-1de845158360 +Openstack-Request-Id: req-e65742ab-4879-4924-9be1-ed6d66f87585 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-02d459c3-ceae-4220-b41d-3f4182eef30d +Openstack-Request-Id: req-62676558-eed6-4c9f-9fe4-4f4a9e32e22f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} +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.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.modules.test_pxe.PXEBootTestCase.test_validate_non_local +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_non_local ... 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.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_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.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.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.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_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.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_rackpdu_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off ... 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.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.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_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on ... 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.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.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_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset ... 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.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata ... 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.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_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.PassthruDecoratorTestCase.test_passthru_ironicexception +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception ... 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.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_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_snmp_objects ... 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.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.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.PassthruDecoratorTestCase.test_passthru_nonironicexception +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception ... 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_snmp.SNMPDeviceDriverTestCase.test_aten_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off ... 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.test_inspector.InspectHardwareTestCase.test_require_managed_boot +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_require_managed_boot ... 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.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.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.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.test_generic.ManualManagementHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_default_interfaces ... 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.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.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_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_off ... 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.test_inspector.InspectHardwareTestCase.test_unmanaged_ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_unmanaged_ok ... 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.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.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_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_generic.ManualManagementHardwareTestCase.test_get_properties_none +ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none ... 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.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.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects ... 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.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces +ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces ... 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.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.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.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.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.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_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.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off ... 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_fields.TestMacAddressField.test_coerce +ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce ... 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_manager.DestroyPortTestCase.test_destroy_port_node_locked +ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_locked ... 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.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.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.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy ... 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 +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-855a44b0-04ba-4df4-8ef2-e4023071f4a1 +Openstack-Request-Id: req-1acde9df-9b0c-44cf-b62a-060234e78eef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-6486fd9d-2a3a-4d08-8b5e-f0594ba63124 +Openstack-Request-Id: req-1acde9df-9b0c-44cf-b62a-060234e78eef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 -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_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.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.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.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.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.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.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.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_base.TestRefreshCleanSteps.test_refresh_steps -ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps ... 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_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.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.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.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_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.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate ... 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.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.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.test_fake_hardware.FakeHardwareTestCase.test_power_interface -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface ... 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.drivers.test_redfish.RedfishHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_redfish.RedfishHardwareTestCase.test_default_interfaces ... 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.objects.test_objects.TestMisc.test_max_version -ironic.tests.unit.objects.test_objects.TestMisc.test_max_version ... 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.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_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.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.objects.test_objects.TestMisc.test_max_version_two -ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_two ... 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.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_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 -GOT:Response: 400 Bad Request +{"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-4843b08a-f693-43b8-80e5-fbc21102b334 +Openstack-Request-Id: req-3146c374-3c83-464f-9682-0977232b17d5 X-Openstack-Ironic-Api-Maximum-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 +{"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-c1024ae1-ec9b-4c85-991b-fe8f8a254ec8 +Openstack-Request-Id: req-3146c374-3c83-464f-9682-0977232b17d5 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-06T10:57:28.786162+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\": \"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-3c5a2223-8a9c-46f9-8297-01aeb638c9ba +Openstack-Request-Id: req-fb79acfc-8dc7-49f1-b5b4-82ae2615a95e 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-06T10:57:28.838002+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/956b0df0-4f2d-404f-bc89-4e5ee3520a72 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 404 Not Found +{"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-1f9bf8d1-3f2f-49d9-8212-702afd18e7ec +Openstack-Request-Id: req-fb79acfc-8dc7-49f1-b5b4-82ae2615a95e X-Openstack-Ironic-Api-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 956b0df0-4f2d-404f-bc89-4e5ee3520a72 could not be found.\", \"debuginfo\": null}"} -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_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_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 +{"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-bc50bb6b-bc59-41f9-a401-e3e9e7bdabde +Openstack-Request-Id: req-3b01959e-208b-4e6a-9d42-d2abcc590ef7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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:portgroup:update\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-bc50bb6b-bc59-41f9-a401-e3e9e7bdabde +Openstack-Request-Id: req-3b01959e-208b-4e6a-9d42-d2abcc590ef7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-4b076fb2-5451-4f24-85b9-d23e5eb9c9e2 +Openstack-Request-Id: req-77d77254-b803-4006-98a7-f6d3912bfc1a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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:portgroup:update\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-4b076fb2-5451-4f24-85b9-d23e5eb9c9e2 +Openstack-Request-Id: req-77d77254-b803-4006-98a7-f6d3912bfc1a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 -DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +{"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-036f656a-b71f-4293-8e5c-fb23f323075b +Openstack-Request-Id: req-7ff2c37b-f667-47af-b396-aff0f3837ba4 X-Openstack-Ironic-Api-Maximum-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\": \"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-036f656a-b71f-4293-8e5c-fb23f323075b +Openstack-Request-Id: req-7ff2c37b-f667-47af-b396-aff0f3837ba4 X-Openstack-Ironic-Api-Maximum-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/validate -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/validate {} +{"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 Content-Type: application/json -Openstack-Request-Id: req-867e0fd7-637f-4bf8-92a0-07477364d081 +Openstack-Request-Id: req-2806dc6a-180c-4e27-817b-c70a7b7dffda X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-867e0fd7-637f-4bf8-92a0-07477364d081 +Openstack-Request-Id: req-2806dc6a-180c-4e27-817b-c70a7b7dffda X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/validate -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/validate {} +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-66555175-2a78-4e14-b78b-1f33aba3168b +Openstack-Request-Id: req-98ad0b24-b538-417a-8c3f-64751a37fc88 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-66555175-2a78-4e14-b78b-1f33aba3168b +Openstack-Request-Id: req-98ad0b24-b538-417a-8c3f-64751a37fc88 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/validate -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/validate {} -GOT:Response: 503 Service Unavailable +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.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.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.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.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.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.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.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function ... 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.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.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.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.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_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_configdrive +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy_with_configdrive ... 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.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_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type ... 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.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_fields.TestStringFieldThatAcceptsCallable.test_coerce_string +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string ... 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 +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e2300ea2-4c44-4e56-8760-908e59ad883f +Openstack-Request-Id: req-33cd21ed-ebad-4da2-a4e1-6c7a5abb2f5e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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-e2300ea2-4c44-4e56-8760-908e59ad883f +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-f914ddc9-844c-4562-9fc8-7653f7132242 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/validate -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/validate {} -GOT:Response: 503 Service Unavailable +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-030162a2-e589-48db-8120-b531314e119e +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-ceba897f-a089-4ead-b6db-c8fbb363cb33 +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-599b65b4-2e28-46b4-b950-3e048acc91c5 +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 Content-Type: application/json -Openstack-Request-Id: req-e64219be-7c31-4722-a411-30b2249d51d6 +Openstack-Request-Id: req-10248615-72f7-4068-8f5e-83d9b27a9ca5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {} +GOT:Response: 202 Accepted +Openstack-Request-Id: req-d87eb27c-eddf-4401-b093-aa2a7dea3b03 +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-9d2e6029-b230-4a76-8a6d-53051d7b3d06 +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 Content-Type: application/json -Openstack-Request-Id: req-e64219be-7c31-4722-a411-30b2249d51d6 +Openstack-Request-Id: req-767d55a7-7fe0-43f2-8d33-3f5b21083eb0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/validate -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/validate {} -GOT:Response: 503 Service Unavailable +X-Openstack-Ironic-Api-Version: 1.37 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"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_unknown_pdu +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu ... 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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_ramdisk.RamdiskDeployTestCase.test_get_clean_steps +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_clean_steps ... 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_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_off ... 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.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_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on ... 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_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.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.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.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.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_prepare +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare ... 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_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.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.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects ... 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.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.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.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.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.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.test_ramdisk.RamdiskDeployTestCase.test_prepare_cleaning +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_cleaning ... 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.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.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.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.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.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.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.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.test_ramdisk.RamdiskDeployTestCase.test_prepare_instance_ramdisk +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_instance_ramdisk ... 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.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.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.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.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.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_snmp.SNMPDeviceDriverTestCase.test_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off ... 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.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay ... 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.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_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state ... 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.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 +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-56912ba5-0101-445f-9e4e-b53c847039b9 +Openstack-Request-Id: req-914702a6-7f62-4060-a719-37265dd36cd8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-56912ba5-0101-445f-9e4e-b53c847039b9 +Openstack-Request-Id: req-914702a6-7f62-4060-a719-37265dd36cd8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/validate -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/validate {} +{"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-7478a5f5-5215-4367-8f6d-7c57640f6026 +Openstack-Request-Id: req-a9bfdef7-9a72-4767-8dc1-9bfc29432535 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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.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.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.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_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_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.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.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.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.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_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_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.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.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot ... 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.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.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.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.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.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_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_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.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_inspector.CommonFunctionsTestCase.test_get_callback_endpoint -ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint ... 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_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.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.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.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_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.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.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.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.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.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.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.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.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 +{"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-7478a5f5-5215-4367-8f6d-7c57640f6026 +Openstack-Request-Id: req-a9bfdef7-9a72-4767-8dc1-9bfc29432535 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/validate -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/validate {} -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 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-c86234f4-6f96-41b1-96f3-ed165452d602 +Openstack-Request-Id: req-c50cc224-6f6f-4186-a039-a3f63acba27e X-Openstack-Ironic-Api-Maximum-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 +{"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-c86234f4-6f96-41b1-96f3-ed165452d602 +Openstack-Request-Id: req-c50cc224-6f6f-4186-a039-a3f63acba27e X-Openstack-Ironic-Api-Maximum-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/maintenance -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance None -GOT:Response: 503 Service Unavailable +{"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-4e6508ff-1f8d-4622-965b-ea071e9ae3a3 +Openstack-Request-Id: req-8f3b80ff-3c64-4191-8ec4-1ea21c92cbc2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-4e6508ff-1f8d-4622-965b-ea071e9ae3a3 +Openstack-Request-Id: req-8f3b80ff-3c64-4191-8ec4-1ea21c92cbc2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/maintenance -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance None -GOT:Response: 503 Service Unavailable +{"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-50aab836-6c3e-45b3-ac53-d3931d1577f5 +Openstack-Request-Id: req-3bc6b78f-88b7-40bb-bdbc-01117fd49e99 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-50aab836-6c3e-45b3-ac53-d3931d1577f5 +Openstack-Request-Id: req-3bc6b78f-88b7-40bb-bdbc-01117fd49e99 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/maintenance -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance None -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-6951769b-409b-4e75-a897-8319022179b6 +Openstack-Request-Id: req-cc526df5-ddfd-4e18-875e-568784331213 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-6951769b-409b-4e75-a897-8319022179b6 +Openstack-Request-Id: req-cc526df5-ddfd-4e18-875e-568784331213 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/maintenance -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance None -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-4f4819e2-fd17-4b75-a619-fe047f216c8d +Openstack-Request-Id: req-d2b87608-b788-436b-a6a0-51b5d73d91a8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-4f4819e2-fd17-4b75-a619-fe047f216c8d +Openstack-Request-Id: req-d2b87608-b788-436b-a6a0-51b5d73d91a8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/maintenance -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance None -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/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-7d3e7943-dcf9-48e4-b7fa-67529bb48060 +Openstack-Request-Id: req-8b734aa7-bca3-4a8a-a8d5-5a783c90c450 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate ... 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.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.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.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.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.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 +/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.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.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.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.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.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_ramdisk.RamdiskDeployTestCase.test_validate_interface_mismatch +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_interface_mismatch ... 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.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 +/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_046_nodes_states_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_046_nodes_states_get_observer ... 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.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.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.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_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_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure ... 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.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 +/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.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail ... 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.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device ... 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.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock ... 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.test_snmp.SNMPDeviceDriverTestCase.test_power_reset +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset ... 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 +/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 " +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-7d3e7943-dcf9-48e4-b7fa-67529bb48060 +Openstack-Request-Id: req-b50e4275-55b0-4a0f-b633-3e1be3b6e017 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/maintenance -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance None -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 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-f26ea3cb-2e08-4fc2-b1f2-8c61ec4c6418 +Openstack-Request-Id: req-48a256be-be13-4ee7-b0bc-f8c3a67f2697 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-f26ea3cb-2e08-4fc2-b1f2-8c61ec4c6418 +Openstack-Request-Id: req-5776bbac-fae6-4bae-a03e-881ffd8ebddf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance None +{"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-7fd2fef6-e329-4b5c-89a1-af62c5d893b4 +Openstack-Request-Id: req-07e8de4d-7025-4fc8-8dfd-8e2467030437 X-Openstack-Ironic-Api-Maximum-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 +{"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-7fd2fef6-e329-4b5c-89a1-af62c5d893b4 +Openstack-Request-Id: req-ed009373-4738-468b-ae04-32afb4f5a35c X-Openstack-Ironic-Api-Maximum-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.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.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 -ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client -ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client ... ok -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/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-dd28d3cf-0235-4f3a-88f4-1bfcd2d48a6f +Openstack-Request-Id: req-45357c62-c732-4e3d-9654-8e479928bf68 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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/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-453d8178-4e3e-4d29-9d6f-7112bdd2906d +Openstack-Request-Id: req-4bd7c2de-f910-4a4f-85ac-10e1307068f3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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/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-b6aad806-52b7-4990-bf97-936b687a35b6 +Openstack-Request-Id: req-459e45a7-4c8a-4cd7-86d9-19ab01196888 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 {} +{"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-b3745b82-d286-45d0-b351-acb40fde1810 +Openstack-Request-Id: req-03f0c5b3-b3f0-45c9-8993-7a8dbcfca7ad X-Openstack-Ironic-Api-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 {} +{"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-05d5b702-e9d9-4bde-adc7-ca46c2f19242 +Openstack-Request-Id: req-b6efe5da-a352-4908-becd-fb609837796f X-Openstack-Ironic-Api-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 {} +{"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-bcfcc560-8215-406b-9e11-28efb953553a +Openstack-Request-Id: req-fa0e17b0-0b58-41cd-8921-139ad038c05a X-Openstack-Ironic-Api-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\": \"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-3aff732e-23be-4ff7-bd39-cd315ecf5966 +Openstack-Request-Id: req-945be358-0f26-4ee0-a4c1-9f1f092a0c81 X-Openstack-Ironic-Api-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\": \"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-4f78b26a-32df-4aa1-877c-ef963a31c222 +Openstack-Request-Id: req-0ce9a261-f755-435d-a257-9077f736b26a X-Openstack-Ironic-Api-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\": \"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-873aae2f-7432-40b0-9b2a-0105998cf2f0 +Openstack-Request-Id: req-bfd92d68-c5b6-45cc-9db0-521eb4508b03 X-Openstack-Ironic-Api-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\": \"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.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.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 +/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.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option ... 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.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded ... 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.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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay ... 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.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 +/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.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/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.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_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 ... 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.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.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 +/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_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.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.xclarity.test_management.XClarityManagementDriverTestCase.test_get_properties +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_properties ... 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 +/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.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.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 " +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 +/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.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.xclarity.test_management.XClarityManagementDriverTestCase.test_get_supported_boot_devices +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_supported_boot_devices ... 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.ManagerDoSyncPowerStateTestCase.test_no_power_sync_support +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_no_power_sync_support ... 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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_http_url +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_http_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 " +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.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.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device ... 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.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 +/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.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.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.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 +/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.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.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success ... 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 +/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_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises ... /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.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_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 +/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_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.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.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.test_snmp.SNMPDeviceDriverTestCase.test_power_state_error +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_error ... 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 +/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.test_base.CleanStepTestCase.test_get_and_execute_clean_steps +ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_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 " +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.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs ... 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 +/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.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on ... 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.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.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.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.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.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 +/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.ManagerDoSyncPowerStateTestCase.test_state_changed_sync +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync ... 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.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 +/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.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.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift/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.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.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.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 +/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.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.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.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_with_label +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_with_label ... 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.ManagerDoSyncPowerStateTestCase.test_state_not_set +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set ... 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.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_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 " +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 +/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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-85efbee3-b1d4-4907-8dbf-6132a56dd538 +Openstack-Request-Id: req-8b734aa7-bca3-4a8a-a8d5-5a783c90c450 X-Openstack-Ironic-Api-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\": \"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-20f362e5-62d1-48bc-9aad-7f4c3c3b37f5 +Openstack-Request-Id: req-ef7d79ca-c40f-4c8f-ae59-19f32e593ae6 X-Openstack-Ironic-Api-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 +{"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-1b86de8a-09a5-45d8-8937-308d588495c6 +Openstack-Request-Id: req-ef7d79ca-c40f-4c8f-ae59-19f32e593ae6 X-Openstack-Ironic-Api-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 +{"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-c356b14a-356c-46b0-b186-cdfea90849b3 +Openstack-Request-Id: req-87a83d89-85ca-4b42-bc14-5e7f37e5c0d4 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"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-b79cc02c-f808-4a98-820e-03af95f738df +Openstack-Request-Id: req-87a83d89-85ca-4b42-bc14-5e7f37e5c0d4 X-Openstack-Ironic-Api-Maximum-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: 404 Not Found +{"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-7cde7dcf-ee93-4c37-9dfb-804582a4fb7d +Openstack-Request-Id: req-aaf02c1f-fe61-4837-b12e-e2a4b8b13f51 X-Openstack-Ironic-Api-Maximum-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_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.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_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.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.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.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.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.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.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.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.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.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.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.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.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 -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 +{"ports": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c465a233-3f56-40d5-b67f-a74699379544 +Openstack-Request-Id: req-aaf02c1f-fe61-4837-b12e-e2a4b8b13f51 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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": []} +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-c465a233-3f56-40d5-b67f-a74699379544 +Openstack-Request-Id: req-83da66c0-7429-4c5c-a479-7fc03715f7d9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/maintenance -DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance -GOT:Response: 503 Service Unavailable +{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "created_at": "2025-02-07T17:34:05.433848+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-8ddaee39-d93c-4d07-987c-c6df486a78c5 +Openstack-Request-Id: req-83da66c0-7429-4c5c-a479-7fc03715f7d9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "created_at": "2025-02-07T17:34:05.433848+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-8ddaee39-d93c-4d07-987c-c6df486a78c5 +Openstack-Request-Id: req-befef761-b9da-4158-b2a7-c665f6bf94ae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance -DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance -GOT:Response: 503 Service Unavailable +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:34:05.515992+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-b2d5c0c2-235d-47fa-927b-c3a50648d5ff +Openstack-Request-Id: req-befef761-b9da-4158-b2a7-c665f6bf94ae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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": "2025-02-07T17:34:05.515992+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.ManagerDoSyncPowerStateTestCase.test_state_unchanged +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged ... 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 +/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.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.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 +/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.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift ... 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.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.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value +ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value ... 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 +/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.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 +/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.objects.test_fields.TestNotificationStatusField.test_coerce_good_value +ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_good_value ... 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.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 +/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.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_off ... 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 +/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.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.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_vendor_detection +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_vendor_detection ... 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.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.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 +/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.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_missing ... 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.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.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.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.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.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.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.conductor.test_manager.TestIndirectionApiConductor.test_object_action +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action ... 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.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.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.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.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.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects ... 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.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.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.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.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.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.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_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.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions ... 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.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.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.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.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.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.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.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.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.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.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_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_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.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.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_node.TestConvertToVersion.test_bios_supported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing ... 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.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.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.objects.test_node.TestConvertToVersion.test_bios_supported_set +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set ... 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.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.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.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.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.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.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_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.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.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.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_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.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.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.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.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat +ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat ... 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.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.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_node_history.TestNodeHistoryObject.test_create +ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_create ... 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.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.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.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.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_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.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.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.objects.test_node_history.TestNodeHistoryObject.test_get +ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get ... 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.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.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_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_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_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.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.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.objects.test_node_history.TestNodeHistoryObject.test_list +ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list ... 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.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.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.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.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.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.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.objects.test_notification.TestNotificationBase.test_emit_notification +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification ... 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.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.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.objects.test_node.TestConvertToVersion.test_description_supported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_missing ... 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.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.objects.test_node.TestConvertToVersion.test_description_supported_set +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_set ... 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_node.TestConvertToVersion.test_description_unsupported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_missing ... 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.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.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_notification.TestNotificationBase.test_mask_secrets_has_secrets +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_has_secrets ... 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.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.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.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.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.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_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.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_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 +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-b2d5c0c2-235d-47fa-927b-c3a50648d5ff +Openstack-Request-Id: req-7c8f4de7-0601-4b43-bed6-557052b756f4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance -DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance -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 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-26342f00-0c9d-45ae-a256-18090a4a6e47 +Openstack-Request-Id: req-8f412564-b930-4602-88e1-97d69220a896 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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-26342f00-0c9d-45ae-a256-18090a4a6e47 +Openstack-Request-Id: req-552e7507-d8a2-4d1d-83ad-646a7608e7b0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/maintenance -DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance -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 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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9d1a8bf7-ef4e-46ed-9ef1-bf8144041c15 +Openstack-Request-Id: req-7e5552d4-f3a6-4836-a44c-4138e983492d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9d1a8bf7-ef4e-46ed-9ef1-bf8144041c15 +Openstack-Request-Id: req-eaf9a9e6-60e9-4f34-ad20-6c67b93433da X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance -DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance -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 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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6d7c2687-143a-426b-b97e-c4032c10df5b +Openstack-Request-Id: req-e4e8c7fa-f9be-4430-8333-688ae3c3c25c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6d7c2687-143a-426b-b97e-c4032c10df5b +Openstack-Request-Id: req-c83646ba-b573-4ef7-ac75-c34e7c1abe3a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ffaa9deb-c77e-4b20-a5fe-4f037b28b8c4 +Openstack-Request-Id: req-e99eec3b-4d40-47de-b687-6aca258bd57f X-Openstack-Ironic-Api-Maximum-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/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-ffaa9deb-c77e-4b20-a5fe-4f037b28b8c4 +Openstack-Request-Id: req-de42c873-2f44-4925-98c6-056d9aedbdf8 X-Openstack-Ironic-Api-Maximum-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device {'boot_device': 'pxe'} -GOT:Response: 503 Service Unavailable +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-44114d4b-dc28-4360-a912-bb4804b4349d +Openstack-Request-Id: req-1ede0007-8542-4529-a3ab-9a2649f81df7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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-44114d4b-dc28-4360-a912-bb4804b4349d +Openstack-Request-Id: req-338b22e2-4c9c-40f7-9e1e-1250bf8d1f47 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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.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.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.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.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.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.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.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.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.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.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.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_neutron.TestNeutronNetworkActions.test__uncidr_ipv4 -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv4 ... 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.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.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_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.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.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.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.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.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces ... 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.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.objects.test_bios.TestBIOSSettingObject.test_create -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create ... 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.objects.test_bios.TestBIOSSettingObject.test_delete -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete ... 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.objects.test_bios.TestBIOSSettingObject.test_get -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get ... ok -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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a025a789-91a8-4822-a567-8a023197fc48 +Openstack-Request-Id: req-b2862c0c-6eee-4ae4-9396-9c09242a9bb7 X-Openstack-Ironic-Api-Maximum-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 {} +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-044b326d-94a7-439e-873c-6250322d969e +Openstack-Request-Id: req-a2898eed-1819-407b-8459-25f5e799cce7 X-Openstack-Ironic-Api-Maximum-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 {} +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-5379992f-663d-4ae4-a8b8-bb9887e2a3cd +Openstack-Request-Id: req-4cece22e-f32b-4244-a368-4b8c51737010 X-Openstack-Ironic-Api-Maximum-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 +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.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.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.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled ... 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-d47b27ce-8fc7-4645-910b-a3d82bd21962 +Openstack-Request-Id: req-82f87a34-4db1-4534-ad04-16d227fec14f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-d4167b2b-9b91-4dc7-90b6-9729e071a9b5 +Openstack-Request-Id: req-82f87a34-4db1-4534-ad04-16d227fec14f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-d8f63edc-d7ef-4fc4-b042-72a5583e8f77 +Openstack-Request-Id: req-6600a89d-8c34-40a0-b73f-ec117e957c28 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-6600a89d-8c34-40a0-b73f-ec117e957c28 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-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': '68a552fb-dcd2-43bf-9302-e4c93287be16', 'address': '00:01:02:03:04:05'} -GOT:Response: 403 Forbidden +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-2f89d3ff-8548-4279-b16b-df7504eb6aaf +Openstack-Request-Id: req-33ff63ea-7f42-40f8-b8c5-244cb85355b8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-33ff63ea-7f42-40f8-b8c5-244cb85355b8 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-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': '68a552fb-dcd2-43bf-9302-e4c93287be16', 'address': '00:01:02:03:04:05'} +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-3346f72d-56ce-4e3b-9c33-141cec9f577f +Openstack-Request-Id: req-e58f2453-039e-4d3b-b06a-68c764fe5725 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-07930211-6806-4250-acbf-c2dadef31982 +Openstack-Request-Id: req-e58f2453-039e-4d3b-b06a-68c764fe5725 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 {} +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-a9bfa7ed-2093-4ccc-a365-e7630a7f6710 +Openstack-Request-Id: req-c687e79d-8b2b-4eaa-8e0c-131774f311f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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:port:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ff33605a-7fe1-4e56-85e9-19db1b945091 +Openstack-Request-Id: req-c687e79d-8b2b-4eaa-8e0c-131774f311f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-31c28673-c455-4967-a700-495a7607dcdd +Openstack-Request-Id: req-c9032678-1a1e-4ba5-93d4-d790addc2f22 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-04449868-6fe2-4ee6-a315-9a9c200ae010 +Openstack-Request-Id: req-c9032678-1a1e-4ba5-93d4-d790addc2f22 X-Openstack-Ironic-Api-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 +{"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-b8bd7fdb-3447-4218-a006-b96dda784bb3 +Openstack-Request-Id: req-8ad067f9-5fcc-4ec1-a24c-54e3c97002de X-Openstack-Ironic-Api-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 +{"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-8e2ece2d-0534-4912-99c0-3dab6f7dbb70 +Openstack-Request-Id: req-8ad067f9-5fcc-4ec1-a24c-54e3c97002de X-Openstack-Ironic-Api-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_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_bios.TestBIOSSettingObject.test_get_by_node_id -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get_by_node_id ... 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.objects.test_bios.TestBIOSSettingObject.test_list_create -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_create ... 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.objects.test_bios.TestBIOSSettingObject.test_list_delete -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete ... ok -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save ... ok -GOT:Response: 503 Service Unavailable +{"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-6e0f18b1-0f3f-4d83-8e45-dbc69ab2065c +Openstack-Request-Id: req-72a4710d-0411-4f57-853c-a5375572cbf8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6e0f18b1-0f3f-4d83-8e45-dbc69ab2065c +Openstack-Request-Id: req-72a4710d-0411-4f57-853c-a5375572cbf8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/boot_device -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device {'boot_device': 'pxe'} +{"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-5de67c6a-c5bb-4502-ad9d-894fe412c781 +Openstack-Request-Id: req-a3e5a822-092f-4c60-b2ec-c7ab7aa29367 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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: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.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.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.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.drac.test_inspect.DracRedfishInspectionTestCase.test_get_properties +ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_get_properties ... 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.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_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.objects.test_notification.TestNotificationBase.test_populate_schema +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema ... 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.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.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.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.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.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.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_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_common.IloCommonMethodsTestCase.test_setup_vmedia +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia ... 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_node.TestConvertToVersion.test_lessee_supported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_missing ... 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.objects.test_port.TestPortObject.test_create +ironic.tests.unit.objects.test_port.TestPortObject.test_create ... 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.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.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.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.objects.test_node.TestConvertToVersion.test_lessee_unsupported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_missing ... 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.objects.test_port.TestPortObject.test_get_by_address +ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address ... 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.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.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.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.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.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.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.objects.test_port.TestPortObject.test_get_by_name +ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_name ... 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.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.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.objects.test_port.TestPortObject.test_get_by_uuid +ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_uuid ... ok +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.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.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_port.TestPortObject.test_list +ironic.tests.unit.objects.test_port.TestPortObject.test_list ... 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.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.objects.test_port.TestPortObject.test_list_deprecated_owner +ironic.tests.unit.objects.test_port.TestPortObject.test_list_deprecated_owner ... 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.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.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_port.TestPortObject.test_payload_schemas +ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas ... 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.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_port.TestPortObject.test_refresh +ironic.tests.unit.objects.test_port.TestPortObject.test_refresh ... 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_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_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.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_port.TestPortObject.test_save +ironic.tests.unit.objects.test_port.TestPortObject.test_save ... 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.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.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.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.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.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_node.TestConvertToVersion.test_protected_supported_set +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_set ... 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_port.TestPortObject.test_supports_is_smartnic_supported +ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_supported ... 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.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.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.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.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.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.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.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.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_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.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.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.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.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.objects.test_volume_target.TestVolumeTargetObject.test_create +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create ... 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_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.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_volume_target.TestVolumeTargetObject.test_destroy +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy ... 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.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.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.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.objects.test_volume_target.TestVolumeTargetObject.test_get +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get ... 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.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 ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-5de67c6a-c5bb-4502-ad9d-894fe412c781 +Openstack-Request-Id: req-a3e5a822-092f-4c60-b2ec-c7ab7aa29367 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device {'boot_device': 'pxe'} +{"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-bbf1b377-31e4-4669-b1b8-57709ebcb846 +Openstack-Request-Id: req-8cb9cbd6-ef11-4f44-873b-e232a4230115 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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:port:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-bbf1b377-31e4-4669-b1b8-57709ebcb846 +Openstack-Request-Id: req-8cb9cbd6-ef11-4f44-873b-e232a4230115 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 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'} -GOT:Response: 403 Forbidden +{"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-6bfcaa2d-264c-4500-a3e0-8755c10a14f7 +Openstack-Request-Id: req-90bab5d6-3254-4495-950e-66bc6e56e6bb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-6bfcaa2d-264c-4500-a3e0-8755c10a14f7 +Openstack-Request-Id: req-90bab5d6-3254-4495-950e-66bc6e56e6bb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device {'boot_device': 'pxe'} +{"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-8be8e7ad-cfd0-4b38-ada5-2626fa2a2832 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-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-8be8e7ad-cfd0-4b38-ada5-2626fa2a2832 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-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'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-cdde02f8-1633-4c85-9f25-3f2ce43781ca +Openstack-Request-Id: req-8c54c0ea-1fb4-48bc-8d3b-72f867fea836 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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:port:update\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-cdde02f8-1633-4c85-9f25-3f2ce43781ca +Openstack-Request-Id: req-8c54c0ea-1fb4-48bc-8d3b-72f867fea836 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 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'} -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-e64b1028-9fc3-4809-acb5-670602cb7dee +Openstack-Request-Id: req-b76baa19-19be-4322-9980-0447c9f2043b X-Openstack-Ironic-Api-Maximum-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 +{"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-e64b1028-9fc3-4809-acb5-670602cb7dee +Openstack-Request-Id: req-b76baa19-19be-4322-9980-0447c9f2043b X-Openstack-Ironic-Api-Maximum-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/management/boot_device -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device {} -GOT:Response: 503 Service Unavailable +{"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-9ae4f1b8-3bb0-4915-8d64-b2fa18e70386 +Openstack-Request-Id: req-c7ec3312-7563-4c96-9fde-cf0770568925 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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:update\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9ae4f1b8-3bb0-4915-8d64-b2fa18e70386 +Openstack-Request-Id: req-c7ec3312-7563-4c96-9fde-cf0770568925 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device {} -GOT:Response: 503 Service Unavailable +{"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-53e82eb0-9dc2-469e-bd31-402ebd3587e1 +Openstack-Request-Id: req-90d85e60-2478-46a5-b988-90be8313df5a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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:update\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-53e82eb0-9dc2-469e-bd31-402ebd3587e1 +Openstack-Request-Id: req-90d85e60-2478-46a5-b988-90be8313df5a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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.objects.test_bios.TestBIOSSettingObject.test_save -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save ... ok -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.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.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.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.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.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.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.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_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_volume_target.TestVolumeTargetObject.test_destroy -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy ... 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.objects.test_volume_target.TestVolumeTargetObject.test_get -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get ... 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: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-c8c0a42a-a84c-417c-8e4b-a249bb022b88 +X-Openstack-Ironic-Api-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.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_volume_target.TestVolumeTargetObject.test_get_by_id ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_id ... 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.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_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.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.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_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.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.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.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.objects.test_node.TestConvertToVersion.test_retired_supported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_missing ... 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.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.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.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.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.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_node.TestConvertToVersion.test_retired_unsupported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_missing ... 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.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.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.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.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.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_volume_target.TestVolumeTargetObject.test_list_none ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none ... 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.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_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.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_volume_target.TestVolumeTargetObject.test_payload_schemas ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas ... 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.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_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_volume_target.TestVolumeTargetObject.test_refresh ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh ... 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.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.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.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.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.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.objects.test_volume_target.TestVolumeTargetObject.test_save ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save ... 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.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.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_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.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.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.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.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.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.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh ... ok -GOT:{'portgroups': [{'uuid': '5a2fd20f-1355-4c0b-a99e-ed7d2ca522eb', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/5a2fd20f-1355-4c0b-a99e-ed7d2ca522eb', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5a2fd20f-1355-4c0b-a99e-ed7d2ca522eb', 'rel': 'bookmark'}]}, {'uuid': '69a227df-d1fa-4d70-ab96-de94208bfdec', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/69a227df-d1fa-4d70-ab96-de94208bfdec', 'rel': 'self'}, {'href': 'http://localhost/portgroups/69a227df-d1fa-4d70-ab96-de94208bfdec', 'rel': 'bookmark'}]}, {'uuid': 'e7f2cb22-3f21-420d-8099-849e0407f7d2', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/e7f2cb22-3f21-420d-8099-849e0407f7d2', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e7f2cb22-3f21-420d-8099-849e0407f7d2', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups?sort_key=mode {} -GOT:{'portgroups': [{'uuid': '52447b5c-9072-4933-b362-48d1c9957e6f', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/52447b5c-9072-4933-b362-48d1c9957e6f', 'rel': 'self'}, {'href': 'http://localhost/portgroups/52447b5c-9072-4933-b362-48d1c9957e6f', 'rel': 'bookmark'}]}, {'uuid': 'de74f45c-b0ce-4897-8a81-73feb7d4fc96', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/de74f45c-b0ce-4897-8a81-73feb7d4fc96', 'rel': 'self'}, {'href': 'http://localhost/portgroups/de74f45c-b0ce-4897-8a81-73feb7d4fc96', 'rel': 'bookmark'}]}, {'uuid': 'd093c24c-b8c8-4f01-8f17-3851c7c9215d', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/d093c24c-b8c8-4f01-8f17-3851c7c9215d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d093c24c-b8c8-4f01-8f17-3851c7c9215d', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups?sort_key=foo {} +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.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.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.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 GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-704cdf75-0640-4b99-86ee-29058f610078 +Openstack-Request-Id: req-d92a1017-7c63-49f1-824f-86ca516150ac X-Openstack-Ironic-Api-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 {} +{"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-cc9dfebb-9e5f-4c4e-9bf8-1a21beca72a1 +Openstack-Request-Id: req-26642a6d-583d-4fa4-9515-8e1fe22cac52 X-Openstack-Ironic-Api-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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Detected change in ramdisk provided \\\"callback_url\\\"\", \"debuginfo\": null}"} +POST: /v1/heartbeat/6b39cd7a-3919-4d9c-8947-7e6505cc14fa {'callback_url': 'url'} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-29a3ec3f-6279-4c33-a2f9-77a5bb73f505 +Openstack-Request-Id: req-d1da67cd-7887-4315-87bd-f7ca487a2b47 X-Openstack-Ironic-Api-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 -Content-Type: application/json -Openstack-Request-Id: req-974daac4-faab-48ca-a7c4-28373f5648d0 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 6b39cd7a-3919-4d9c-8947-7e6505cc14fa 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-4c4bad07-1a47-4e39-9262-ddd26b4e82d8 X-Openstack-Ironic-Api-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 {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-2316e614-7bb5-4664-add9-298bc63d11bf + +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-7f92147e-d076-42fb-a797-df5b68dc6db6 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}"} -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.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap ... 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.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.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.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.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports ... 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.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.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.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.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.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail ... ok -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-46fed149-a9d0-4efc-99f7-6e75adb4268a +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-629c7251-788d-4d76-a4b0-5667fcd54f7d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-46fed149-a9d0-4efc-99f7-6e75adb4268a + +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-2e42494a-7693-45e0-8f95-d2d5a1fbf830 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-1ad0b454-7be2-437f-b4c9-cadab146634f + +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-93c7f665-0bb5-43c1-958f-cc615199bbd3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-1ad0b454-7be2-437f-b4c9-cadab146634f + +POST: /v1/heartbeat/test.1 {'callback_url': 'url', 'agent_token': 'token'} +GOT:Response: 202 Accepted +Openstack-Request-Id: req-73c642e0-7151-47af-afc7-df1b7f421ea5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-ed27927d-a498-4d03-998f-a428483ecf1d + +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-12cccb61-9637-49df-96e0-497a859b7d4f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 + +POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_token': 'meow', 'agent_verify_ca': 'abcd'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-ed27927d-a498-4d03-998f-a428483ecf1d +Openstack-Request-Id: req-b5b43b6e-0c12-4e06-beea-c493c1f9d824 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device {} -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-03238e15-9542-46a6-bc0d-a0d08ff42a29 +Openstack-Request-Id: req-67ee4e64-25be-4c5f-a947-06f671190919 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +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-03238e15-9542-46a6-bc0d-a0d08ff42a29 +Openstack-Request-Id: req-dd57fe9e-4993-4742-8b31-6cae31ca2988 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device {} -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/1deaee63-64f9-4fa7-9fcd-2bdf850497f7 {'callback_url': 'url'} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-51a15177-3065-4c0c-a99b-63c66a3e542a +Openstack-Request-Id: req-3eeaef46-4537-4fb4-a08d-0e4fd02bb2f1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +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.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.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.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.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.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.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.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.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_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.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.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_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.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.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.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.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.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.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.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.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.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.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.ibmc.test_utils.IBMCUtilsTestCase.test_revert_dictionary +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_revert_dictionary ... 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.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.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.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.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.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.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 +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-51a15177-3065-4c0c-a99b-63c66a3e542a +Openstack-Request-Id: req-ac2cc681-5cab-4ef7-92e1-a088dcbdd5d7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} +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-df582154-3fef-4ad8-b0ab-60859a234276 +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}"} +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-dd6522b3-bcaf-4fbb-8101-6e21b87d4c86 +Openstack-Request-Id: req-8a583a67-6aaf-430a-bf8b-d7c89d2674fc X-Openstack-Ironic-Api-Maximum-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 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-dd6522b3-bcaf-4fbb-8101-6e21b87d4c86 +Openstack-Request-Id: req-cd89af73-c3b8-4c92-84af-30ffbfec3ce5 X-Openstack-Ironic-Api-Maximum-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/management/boot_device/supported -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device/supported {} -GOT:Response: 503 Service Unavailable +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-6c985ee2-f41a-4521-8de8-6c2280cd627a +Openstack-Request-Id: req-939c05e7-0368-41cd-a39f-f4a3306befcf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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-6c985ee2-f41a-4521-8de8-6c2280cd627a +Openstack-Request-Id: req-87ee575f-3fac-4eea-9735-e4a98f63111c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 {} -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 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-4a346310-0183-47c9-a5df-b639d5e0106a +Openstack-Request-Id: req-a1626845-3771-4b77-9b4c-8306ead4d49a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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-4a346310-0183-47c9-a5df-b639d5e0106a +Openstack-Request-Id: req-ddf9ea41-6aca-499c-99bf-0ff89461b726 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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.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.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.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.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.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.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.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.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.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.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.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports ... 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.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_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.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_neutron.TestNeutronNetworkActions.test_validate_agent_up -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_up ... 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.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface ... 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/vendor_passthru/methods +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-93eb9de8-97de-458a-acae-bc3c77d6633d +Openstack-Request-Id: req-182d6bba-7a63-41f1-8069-93bc2c25d585 X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-cd1f8c61-5a2f-4c34-b31c-4e0d1b3956bb +Openstack-Request-Id: req-ae35b8ea-ca0f-4d59-bda4-d29656cc157f X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ba4f23f5-c650-4a1c-a650-1ab96e1ba811 +Openstack-Request-Id: req-7dfdaefe-952a-4280-9fdb-fbdd659e680e X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-bf18f0eb-1e42-468e-9ee5-468969a3ec62 +Openstack-Request-Id: req-d971ed18-924c-4c27-b6d7-eea3c902879c X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a53cb1c3-f6d7-457f-9800-54d1c8d66830 +Openstack-Request-Id: req-d5b9ad90-28d3-4b87-a130-925c2301846e X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5ed15e13-e51e-43bf-b32c-355d13046f0f +Openstack-Request-Id: req-5fb03202-8478-4d41-b7d5-2f97bd4139e2 X-Openstack-Ironic-Api-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 {} +{"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 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0b4e8410-0356-40a5-884b-8871d0dcc20d +Openstack-Request-Id: req-904baf89-bb57-4231-9267-72d50fe85215 X-Openstack-Ironic-Api-Maximum-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 {} +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-1afdb5d3-0144-4c46-9a65-96f877b67383 +Openstack-Request-Id: req-da0d85dc-d908-445e-b57d-1931837245e8 X-Openstack-Ironic-Api-Maximum-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 +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.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.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.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.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.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.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.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.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.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.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 +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-52cc6046-971a-49b7-b5ce-0620b951e906 +Openstack-Request-Id: req-c8c0a42a-a84c-417c-8e4b-a249bb022b88 X-Openstack-Ironic-Api-Maximum-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\": \"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-ff02dfae-3f1d-4422-aedf-d39aefd79bfd +Openstack-Request-Id: req-cbbbaac6-285f-493d-99c6-52b85d55c4f0 X-Openstack-Ironic-Api-Maximum-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d99cb1ad-b097-4af0-a5cb-ad6f18fc3e09 +Openstack-Request-Id: req-cbbbaac6-285f-493d-99c6-52b85d55c4f0 X-Openstack-Ironic-Api-Maximum-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\": \"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-36194593-0a2c-47c6-9b77-a2793f1cec69 +Openstack-Request-Id: req-566e823b-a2ba-4ae7-bb65-737dc0a47e59 X-Openstack-Ironic-Api-Maximum-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 {} -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-67a84ffb-1266-45d6-b7cf-e4bc23bc0095 +Openstack-Request-Id: req-566e823b-a2ba-4ae7-bb65-737dc0a47e59 X-Openstack-Ironic-Api-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: 404 Not Found +{"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-41922c01-bdc4-400f-960f-0c3afcbc7ba3 +Openstack-Request-Id: req-c7324883-da00-415d-be95-e1438054b1d0 X-Openstack-Ironic-Api-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: 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-416dc5c9-96e2-47d1-9364-f422e18baae6 +Openstack-Request-Id: req-c7324883-da00-415d-be95-e1438054b1d0 X-Openstack-Ironic-Api-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.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.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.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.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_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.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.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_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.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 +{"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-b032c6ee-74d8-42f7-a5c1-822bce222ddf +Openstack-Request-Id: req-bb45239e-a52e-438f-877b-8281ad3a3228 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +{"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-b032c6ee-74d8-42f7-a5c1-822bce222ddf +Openstack-Request-Id: req-bb45239e-a52e-438f-877b-8281ad3a3228 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device/supported -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device/supported {} +{"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-9d213b39-0e85-4d06-bbbf-b65f10d20dff +Openstack-Request-Id: req-4884fea8-567c-4164-b845-29e395d878dc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +{"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-9d213b39-0e85-4d06-bbbf-b65f10d20dff +Openstack-Request-Id: req-4884fea8-567c-4164-b845-29e395d878dc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device/supported -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device/supported {} +{"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-6ad2ed40-6ff6-4cf0-a1f8-66fbaa23b3f2 +Openstack-Request-Id: req-a5b92f77-266a-45c9-9b88-382412ea9def X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +{"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-6ad2ed40-6ff6-4cf0-a1f8-66fbaa23b3f2 +Openstack-Request-Id: req-a5b92f77-266a-45c9-9b88-382412ea9def X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device/supported -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device/supported {} +{"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-88e37e14-fa66-4c58-b51e-6f7f658cbe2a +Openstack-Request-Id: req-79b494b5-c199-4d6e-9863-7e344f461862 X-Openstack-Ironic-Api-Maximum-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\": \"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-88e37e14-fa66-4c58-b51e-6f7f658cbe2a +Openstack-Request-Id: req-79b494b5-c199-4d6e-9863-7e344f461862 X-Openstack-Ironic-Api-Maximum-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/inject_nmi -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/inject_nmi {} -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 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-6cc1dae5-0168-4689-88b8-08517bcc2812 +Openstack-Request-Id: req-80e9af84-5518-4e22-a7e8-9e53b25b2b49 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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": [{"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.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.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_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.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.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.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.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.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.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.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_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.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.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_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.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.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.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.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_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.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.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__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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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_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.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.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_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.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_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.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.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.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.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.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.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.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_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.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.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.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_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.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.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.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.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.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.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.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.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 +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6cc1dae5-0168-4689-88b8-08517bcc2812 +Openstack-Request-Id: req-80e9af84-5518-4e22-a7e8-9e53b25b2b49 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/inject_nmi -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/inject_nmi {} -GOT:Response: 503 Service Unavailable +{"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-abd7b7e0-0e55-4237-978e-209700f5e740 +Openstack-Request-Id: req-90107b32-85fb-4734-ad80-0a1cfeb15a41 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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": [{"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-abd7b7e0-0e55-4237-978e-209700f5e740 +Openstack-Request-Id: req-90107b32-85fb-4734-ad80-0a1cfeb15a41 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/inject_nmi -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/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"}]}]} +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-30bfb5cb-e9b9-4fdd-acac-d750349c0b4e +Openstack-Request-Id: req-f43575a4-3233-465d-a945-fcac5e1c2793 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-30bfb5cb-e9b9-4fdd-acac-d750349c0b4e +Openstack-Request-Id: req-f43575a4-3233-465d-a945-fcac5e1c2793 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/inject_nmi -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/inject_nmi {} -GOT:Response: 403 Forbidden +{"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-2af6651f-907a-4c95-9477-5a67849f7433 +Openstack-Request-Id: req-3e9d85b0-902a-4d83-ac00-cfc3925d5132 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"ports": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-2af6651f-907a-4c95-9477-5a67849f7433 +Openstack-Request-Id: req-3e9d85b0-902a-4d83-ac00-cfc3925d5132 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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.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.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.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.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_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_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_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.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.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.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.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.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.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.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_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.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.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_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.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.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.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_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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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 -GOT:Response: 404 Not Found +{"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-925d36f7-890f-46ba-8a8a-a60fc0b1f54f +Openstack-Request-Id: req-b8c5378c-c1e0-49a2-9719-22a9381c3d8b X-Openstack-Ironic-Api-Maximum-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": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-925d36f7-890f-46ba-8a8a-a60fc0b1f54f +Openstack-Request-Id: req-b8c5378c-c1e0-49a2-9719-22a9381c3d8b X-Openstack-Ironic-Api-Maximum-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/states -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states {} -GOT:Response: 200 OK +{"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-51dfc22d-8920-4d4a-9804-7d24ef9fcbfd +Openstack-Request-Id: req-ced3225b-01bc-4d5d-80a5-e80227472f43 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 +{"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-51dfc22d-8920-4d4a-9804-7d24ef9fcbfd +Openstack-Request-Id: req-ced3225b-01bc-4d5d-80a5-e80227472f43 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} -API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states {} +{"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-87d643f2-bca4-4a10-a74a-b6661ac5aee3 +Openstack-Request-Id: req-db2943b2-2fe3-4743-92d6-79fff0eae8d6 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} +{"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-87d643f2-bca4-4a10-a74a-b6661ac5aee3 +Openstack-Request-Id: req-db2943b2-2fe3-4743-92d6-79fff0eae8d6 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} -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 +{"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-609d3afe-2ce5-45b7-8eee-407ef96ba2ff +Openstack-Request-Id: req-cd9e66c8-71fd-416c-8457-6119a713e23a X-Openstack-Ironic-Api-Maximum-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 +{"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.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__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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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_export_configuration_name_missing +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_name_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.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.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.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.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.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_snmpv3 +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_snmpv3 ... ok +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-609d3afe-2ce5-45b7-8eee-407ef96ba2ff +Openstack-Request-Id: req-70e2a0c2-c1e7-48e0-bfa5-c22d62269443 X-Openstack-Ironic-Api-Maximum-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/power -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/power {'target': 'power on'} -GOT:Response: 503 Service Unavailable +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-d5d5286d-d740-4106-ae44-b7073b028755 +Openstack-Request-Id: req-85996aeb-cb53-4a20-941b-4dcb4e1bba90 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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-d5d5286d-d740-4106-ae44-b7073b028755 +Openstack-Request-Id: req-07ef7237-48a1-4e7d-8f06-4e1b1564ad43 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/power {'target': 'power on'} -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 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-6f47f22c-f311-4f39-b9c7-b6b1df066b73 +Openstack-Request-Id: req-dfa90cde-0dd1-4d92-9f7a-24f0b6514912 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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-6f47f22c-f311-4f39-b9c7-b6b1df066b73 +Openstack-Request-Id: req-25b35872-15fc-4600-884a-e150aea8e69b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/power -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/power {'target': 'power on'} -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/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-b4bf26ee-c2e4-4238-8ded-f8dd3613a7f5 +Openstack-Request-Id: req-8a0802a1-1a79-458c-b1e4-41fadc9471c3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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-b4bf26ee-c2e4-4238-8ded-f8dd3613a7f5 +Openstack-Request-Id: req-6c6f6379-45bf-49d6-adf3-85c3a91b3fcc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/power -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/power {'target': 'power on'} -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/traits +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0fb9399f-4e21-4bd8-a289-b5073577bba3 +Openstack-Request-Id: req-2af1d909-ba15-429b-88e5-580af7376d98 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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/traits +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0fb9399f-4e21-4bd8-a289-b5073577bba3 +Openstack-Request-Id: req-209a2b3e-52c1-443c-9387-099df5e6db58 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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.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.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.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.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.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 -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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-642370d6-3fe5-455a-be95-d95ba873a134 +Openstack-Request-Id: req-958a38c1-4d5b-449c-973d-2dc5c436cf37 X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-51b97faa-06b7-4f61-b837-ba22d99db894 +Openstack-Request-Id: req-b36b4f1e-1bde-4f5f-bf87-e783b4c7fcbd X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-37cdab96-c91b-4d9f-a024-98be9efbf032 +Openstack-Request-Id: req-068a039d-1c38-458b-9bad-6accc7526c15 X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-92a07d89-2047-4bb0-941b-0d2c5841d12f +Openstack-Request-Id: req-6ef13875-e206-43a4-9a9a-2778b75ba187 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0e9bd724-e583-4e22-b403-8ce56f47fafc +Openstack-Request-Id: req-83d7dd0e-1b15-4a90-8589-5f4cb5502d3c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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 +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.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.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.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.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.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.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.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.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.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.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.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.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_import_configuration_success +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_success ... 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 +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.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.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_inspect.IloInspectTestCase.test_get_properties +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties ... 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.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.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.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.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.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.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.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.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.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.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.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_failed +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_failed ... ok +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1bd3cff5-d296-461a-81f6-6f312040b599 +Openstack-Request-Id: req-cd9e66c8-71fd-416c-8457-6119a713e23a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} +{"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/volume/connectors GET: /v1/volume/connectors {} -GOT:Response: 403 Forbidden +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-5c91aebe-ec83-4948-8c06-fb06bbba3184 +Openstack-Request-Id: req-521ca900-d039-4148-b97d-0ed2be0215ec X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: 403 Forbidden +{"connectors": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9d3de62e-aa20-47c9-be0d-5cd06980cdb1 +Openstack-Request-Id: req-521ca900-d039-4148-b97d-0ed2be0215ec X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: 403 Forbidden +{"connectors": []} +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 -Openstack-Request-Id: req-faa5cc9e-1fab-4b9f-9105-fdcf5a0e4099 +Location: http://localhost/v1/volume/connectors/87a9c413-55b5-45d8-925d-ccaa0464ecca +Openstack-Request-Id: req-b6e0e2d9-04a0-4a67-9e52-881b8f318ca8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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'} -GOT:Response: 403 Forbidden +{"uuid": "87a9c413-55b5-45d8-925d-ccaa0464ecca", "created_at": "2025-02-07T17:34:08.036825+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/87a9c413-55b5-45d8-925d-ccaa0464ecca", "rel": "self"}, {"href": "http://localhost/volume/connectors/87a9c413-55b5-45d8-925d-ccaa0464ecca", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} +ACL Test GOT Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-b179f29e-2628-47b9-a7ce-53c36e29eabb +Location: http://localhost/v1/volume/connectors/87a9c413-55b5-45d8-925d-ccaa0464ecca +Openstack-Request-Id: req-b6e0e2d9-04a0-4a67-9e52-881b8f318ca8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} +{"uuid": "87a9c413-55b5-45d8-925d-ccaa0464ecca", "created_at": "2025-02-07T17:34:08.036825+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/87a9c413-55b5-45d8-925d-ccaa0464ecca", "rel": "self"}, {"href": "http://localhost/volume/connectors/87a9c413-55b5-45d8-925d-ccaa0464ecca", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} 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 +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 -Openstack-Request-Id: req-f802bc39-e9fd-43c1-b64e-3ecdfd89be8b +Location: http://localhost/v1/volume/connectors/5d822f69-ea57-4271-88f6-64c24fc39405 +Openstack-Request-Id: req-801733b1-013e-47be-a7f2-446415fa7988 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} +{"uuid": "5d822f69-ea57-4271-88f6-64c24fc39405", "created_at": "2025-02-07T17:34:08.110499+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/5d822f69-ea57-4271-88f6-64c24fc39405", "rel": "self"}, {"href": "http://localhost/volume/connectors/5d822f69-ea57-4271-88f6-64c24fc39405", "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/5d822f69-ea57-4271-88f6-64c24fc39405 +Openstack-Request-Id: req-801733b1-013e-47be-a7f2-446415fa7988 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "5d822f69-ea57-4271-88f6-64c24fc39405", "created_at": "2025-02-07T17:34:08.110499+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/5d822f69-ea57-4271-88f6-64c24fc39405", "rel": "self"}, {"href": "http://localhost/volume/connectors/5d822f69-ea57-4271-88f6-64c24fc39405", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} 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'} +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-8b93b3df-c55a-49a8-b148-ae0d0bc55233 +Openstack-Request-Id: req-119ffba9-36fe-40a0-b329-f16302b681c3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-837dcd66-6a0d-4170-a182-18f7a9782444 +Openstack-Request-Id: req-119ffba9-36fe-40a0-b329-f16302b681c3 X-Openstack-Ironic-Api-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: 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': '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-7d766ec3-f686-4d49-8441-74fe85e1dd3e +Openstack-Request-Id: req-9b437e1e-f06a-4c19-ba61-0c0d18592f76 X-Openstack-Ironic-Api-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: 404 Not Found +{"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-2d0f30c4-7304-4f74-a410-ae795d41692c +Openstack-Request-Id: req-9b437e1e-f06a-4c19-ba61-0c0d18592f76 X-Openstack-Ironic-Api-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 -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.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.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.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.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.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.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_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.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.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.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.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.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.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.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_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.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 -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/power {'target': 'power on'} -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 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-756ec8f5-238d-4e29-ade8-af3b900c320f +Openstack-Request-Id: req-04062102-a2a0-4156-994c-a648d105975f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-756ec8f5-238d-4e29-ade8-af3b900c320f +Openstack-Request-Id: req-04062102-a2a0-4156-994c-a648d105975f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/power -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/power {'target': 'power on'} -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/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +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.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.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.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_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.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_utils.RedfishUtilsAuthTestCase.test_auth_auto +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_auto ... 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.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.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.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.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.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.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_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_inspect.IloInspectTestCase.test_inspect_ok_gen8 +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen8 ... 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.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.ilo.test_inspect.IloInspectTestCase.test_validate +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate ... 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.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.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.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_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.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.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_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.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.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.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.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.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.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.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.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.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_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.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.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.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_boot.IloUefiHttpsBootTestCase.test_clean_up_instance +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_clean_up_instance ... ok +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.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.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.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.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.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.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.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_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.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 +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-35083c0a-cd81-43d8-8c9a-90f66e55b130 +Openstack-Request-Id: req-7bed5182-6482-4061-a755-fb459c7b7fd3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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": "2025-02-07T17:34:08.367720+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-35083c0a-cd81-43d8-8c9a-90f66e55b130 +Openstack-Request-Id: req-7bed5182-6482-4061-a755-fb459c7b7fd3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/power {'target': 'power on'} -GOT:Response: 403 Forbidden +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:34:08.367720+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-2410e2d5-014f-4887-a7c0-7f8fcaf6440d +Openstack-Request-Id: req-de631091-4635-4f92-89e1-5451361bbdb6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:34:08.441009+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-2410e2d5-014f-4887-a7c0-7f8fcaf6440d +Openstack-Request-Id: req-de631091-4635-4f92-89e1-5451361bbdb6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/power -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/power {'target': 'power on'} -GOT:Response: 403 Forbidden +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:34:08.441009+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-91115efc-50b0-403b-8df8-f6e346fc446c +Openstack-Request-Id: req-212581d5-7deb-486d-8197-781a41c1e6b0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-91115efc-50b0-403b-8df8-f6e346fc446c +Openstack-Request-Id: req-212581d5-7deb-486d-8197-781a41c1e6b0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/power -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} -GOT:Response: 404 Not Found +{"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-d1702dae-f497-4942-ad7d-23c2238c470a +Openstack-Request-Id: req-265822bb-96a9-4dfd-a2aa-06f5b907f72d X-Openstack-Ironic-Api-Maximum-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:update\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d1702dae-f497-4942-ad7d-23c2238c470a +Openstack-Request-Id: req-265822bb-96a9-4dfd-a2aa-06f5b907f72d X-Openstack-Ironic-Api-Maximum-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/boot_mode -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/boot_mode {'target': 'uefi'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"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-171f2a00-8c7b-40e2-a9ca-79761373b1b5 +Openstack-Request-Id: req-c035959b-574d-4a8b-a5b2-fa19720e8bac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-171f2a00-8c7b-40e2-a9ca-79761373b1b5 +Openstack-Request-Id: req-c035959b-574d-4a8b-a5b2-fa19720e8bac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/boot_mode -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/boot_mode {'target': 'uefi'} +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-58ac0423-90e3-4e06-9d51-26d9f09a2a4e +Openstack-Request-Id: req-c82b8b47-0b66-480f-a578-d98c4e13f909 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-58ac0423-90e3-4e06-9d51-26d9f09a2a4e +Openstack-Request-Id: req-c82b8b47-0b66-480f-a578-d98c4e13f909 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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'} +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-31964c61-d5a2-4365-bbc3-a20b5047b79d +Openstack-Request-Id: req-635dea56-a346-4400-84b5-5cce33018b8f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-31964c61-d5a2-4365-bbc3-a20b5047b79d +Openstack-Request-Id: req-635dea56-a346-4400-84b5-5cce33018b8f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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.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.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.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.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.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.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.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.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_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.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.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.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_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.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.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.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_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated ... 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_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_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.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_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.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.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_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_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 -GOT:Response: 503 Service Unavailable +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.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.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.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.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.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.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_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_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.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info ... ok +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b32edece-3d6f-4ebe-87d3-9112a9802f5d +Openstack-Request-Id: req-3f226d35-8be4-4c35-9496-cb92a22d310d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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-b32edece-3d6f-4ebe-87d3-9112a9802f5d +Openstack-Request-Id: req-8e26e56f-b9bd-46d9-9ee5-68b81e5cbc29 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/boot_mode -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/boot_mode {'target': 'uefi'} -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 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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e44bba2c-e9de-4501-a9f7-3b04b7b5b7e6 +Openstack-Request-Id: req-62584e47-3759-42fa-8ea1-db2dfd67bfa1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e44bba2c-e9de-4501-a9f7-3b04b7b5b7e6 +Openstack-Request-Id: req-7981ef45-3d76-44b1-aebd-62bf028b4722 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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'} -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 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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-02dff66f-9234-4d92-a7b8-d311eb4a0d58 +Openstack-Request-Id: req-aa5fbcf1-2641-42aa-9d37-d66be74cc436 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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-02dff66f-9234-4d92-a7b8-d311eb4a0d58 +Openstack-Request-Id: req-4025c19b-4231-430c-b757-f1e1b3ff44d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/boot_mode -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/boot_mode {'target': 'uefi'} -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 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-4afd83f0-d66b-40fc-ad93-376dd5326f9a +Openstack-Request-Id: req-bb364e1c-1c07-4d70-8869-039cb6832b6a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4afd83f0-d66b-40fc-ad93-376dd5326f9a +Openstack-Request-Id: req-ff9c5c06-6980-43b5-a35f-dab96391276b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/boot_mode -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/boot_mode {'target': 'uefi'} -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/vifs +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7fbff2bc-3793-4cc9-966e-65ff6ca19e8c +Openstack-Request-Id: req-f50bc824-d770-4fae-8904-a847c491486b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7fbff2bc-3793-4cc9-966e-65ff6ca19e8c +Openstack-Request-Id: req-c8fe0598-81bb-4a9f-b26f-68737ded0862 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/boot_mode -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-afc3547f-03b7-4445-a5ef-c0a1eaff256c +Openstack-Request-Id: req-54bc8933-3cbb-4050-aaac-5bd31d1d8b0d X-Openstack-Ironic-Api-Maximum-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 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 Content-Type: application/json -Openstack-Request-Id: req-afc3547f-03b7-4445-a5ef-c0a1eaff256c +Openstack-Request-Id: req-a7516d66-a190-43bc-9e90-ae67f8633d1f X-Openstack-Ironic-Api-Maximum-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/secure_boot -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/secure_boot {'target': 'true'} -GOT:Response: 503 Service Unavailable +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 Content-Type: application/json -Openstack-Request-Id: req-6d853c5d-3615-40d8-a758-85feb7e4c060 +Openstack-Request-Id: req-f119eb66-516f-4ca7-8c20-ecf496d0d26c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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 Content-Type: application/json -Openstack-Request-Id: req-6d853c5d-3615-40d8-a758-85feb7e4c060 +Openstack-Request-Id: req-4be36fa3-02ca-49c8-ace8-27271f901204 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/secure_boot -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/secure_boot {'target': 'true'} +{"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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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_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.test_ipmitool.IPMIToolDriverTestCase.test__allocate_port +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__allocate_port ... 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_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_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.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_bios +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_bios ... 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_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail ... 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.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.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.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.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.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.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.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.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 +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-92c7da3c-be93-411a-8a10-4fca4f46810d +Openstack-Request-Id: req-f9e36ced-4d6b-42d8-b0e6-32b0c4107812 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-92c7da3c-be93-411a-8a10-4fca4f46810d +Openstack-Request-Id: req-f9e36ced-4d6b-42d8-b0e6-32b0c4107812 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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.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.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.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 +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 +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-153c21cf-61ad-49b3-bd35-6c5f2714b890 +Openstack-Request-Id: req-7fe6e072-91ed-4798-8fd4-67988b5118b7 X-Openstack-Ironic-Api-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: 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-aad9ec98-7d46-4ee4-bcc0-5bd12210a2b6 +Openstack-Request-Id: req-7fe6e072-91ed-4798-8fd4-67988b5118b7 X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3990f55b-ed80-4d82-8143-5e2ed5707a6c -X-Openstack-Ironic-Api-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 -Content-Type: application/json -Openstack-Request-Id: req-49d387a1-3920-4c8d-bd3e-03a1f6b9d1ac +Openstack-Request-Id: req-ce1d825f-2e07-4635-ae28-5e4525df89a0 X-Openstack-Ironic-Api-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 +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-dcd2015e-df48-482c-9b41-9b7a5deb52b0 +Openstack-Request-Id: req-ce1d825f-2e07-4635-ae28-5e4525df89a0 X-Openstack-Ironic-Api-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 +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-0deb6225-830d-47cf-b148-e0633d3da033 +Openstack-Request-Id: req-87a69f90-7e38-4f3c-bc45-9f2c3727ef76 X-Openstack-Ironic-Api-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-29bff4a7-601a-4177-8068-fdeb1cbac1e9 +Openstack-Request-Id: req-87a69f90-7e38-4f3c-bc45-9f2c3727ef76 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-f4114176-00bf-4ca8-9cc7-019e02750f76 +Openstack-Request-Id: req-3dacc745-4637-4861-ad4b-afa3ff068386 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-2b515600-a574-4447-b436-e00518810042 +Openstack-Request-Id: req-3dacc745-4637-4861-ad4b-afa3ff068386 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-e90e5179-daa4-4882-b4eb-d517c846ee9e +Openstack-Request-Id: req-329e0ab1-9788-4f5e-93ee-2815cec3b88b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-cf189508-8013-4ecf-84a6-e74b2a2c8b5a +Openstack-Request-Id: req-329e0ab1-9788-4f5e-93ee-2815cec3b88b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-2b6a5c7a-a771-4b8a-bf46-56b95646565e +Openstack-Request-Id: req-7e4ecda5-afda-4088-a7fc-5889785cc424 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-db604e18-986c-4584-b10f-93d2f9b256e4 +Openstack-Request-Id: req-7e4ecda5-afda-4088-a7fc-5889785cc424 X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c68cbbf5-dd2c-484f-8da5-32de0334a3df -X-Openstack-Ironic-Api-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 {} -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.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.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.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.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_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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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 -GOT:Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-713d48f9-afb2-4c08-aa5b-881b039cbc25 +Openstack-Request-Id: req-2348f374-a810-4973-a05e-3b738375d8ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-713d48f9-afb2-4c08-aa5b-881b039cbc25 +Openstack-Request-Id: req-2348f374-a810-4973-a05e-3b738375d8ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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'} -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 get /v1/volume/targets +GET: /v1/volume/targets {} +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.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.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.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_rbac_legacy_113_portgroups_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_113_portgroups_get_member ... 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.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.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.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_boot.IloUefiHttpsBootTestCase.test_validate_rescue +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue ... 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.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_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.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 +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.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.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_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.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.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.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.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_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.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.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.test_ipmitool.IPMIToolDriverTestCase.test_get_properties +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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_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.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 +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-99d9fab8-830b-48e7-9119-fd83e9e51613 +Openstack-Request-Id: req-13d7b96e-800d-4aed-a75a-71a50e14c369 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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": "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-99d9fab8-830b-48e7-9119-fd83e9e51613 +Openstack-Request-Id: req-13d7b96e-800d-4aed-a75a-71a50e14c369 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/secure_boot -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/secure_boot {'target': 'true'} -GOT:Response: 503 Service Unavailable +{"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"}]} +API ACL Testing Path get /v1/volume/targets +GET: /v1/volume/targets {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-2ebf0587-3f5d-4581-881a-2bcc9e5d6435 +Openstack-Request-Id: req-edc59007-3337-4fb7-ba9b-49af00b1eb18 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-2ebf0587-3f5d-4581-881a-2bcc9e5d6435 +Openstack-Request-Id: req-edc59007-3337-4fb7-ba9b-49af00b1eb18 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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'} -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": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} +API ACL Testing Path get /v1/volume/targets +GET: /v1/volume/targets {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-66820a88-16d0-423d-a15a-94c3cc329fca +Openstack-Request-Id: req-97094578-f851-4dfe-8afe-00ee458a84cf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-66820a88-16d0-423d-a15a-94c3cc329fca +Openstack-Request-Id: req-97094578-f851-4dfe-8afe-00ee458a84cf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/secure_boot -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/secure_boot {'target': 'true'} -GOT:Response: 403 Forbidden +{"targets": []} +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-b40d7715-c1ae-4593-89b6-06f3a40a11f5 +Openstack-Request-Id: req-93bb69e4-0761-4ac4-a0b7-1aff82c868ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:34:09.683069+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-b40d7715-c1ae-4593-89b6-06f3a40a11f5 +Openstack-Request-Id: req-93bb69e4-0761-4ac4-a0b7-1aff82c868ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/secure_boot -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/secure_boot {'target': 'true'} -GOT:Response: 403 Forbidden +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:34:09.683069+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-90aab044-d71e-4d7b-87b9-64e0a44dafdb +Openstack-Request-Id: req-668c8427-6ee2-46fe-a56b-e2cfa522d80b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:34:09.750975+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-90aab044-d71e-4d7b-87b9-64e0a44dafdb +Openstack-Request-Id: req-668c8427-6ee2-46fe-a56b-e2cfa522d80b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/secure_boot -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:34:09.750975+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.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_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.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.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.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.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_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.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.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.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.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.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.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.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.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 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8be08301-453e-496b-bbd1-883c52cc4d5e +Openstack-Request-Id: req-0ff4a21c-e932-4ff2-b05e-d215d209441b X-Openstack-Ironic-Api-Maximum-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 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-8be08301-453e-496b-bbd1-883c52cc4d5e +Openstack-Request-Id: req-7c8f8425-8324-4468-b0ec-1699571d585a X-Openstack-Ironic-Api-Maximum-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/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-ea0b9196-8986-4e3d-9948-3a1b820779de -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +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-ea0b9196-8986-4e3d-9948-3a1b820779de +Openstack-Request-Id: req-1a75c531-9945-4c46-a777-aaf8faaba208 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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 +{"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-3bf942a5-4344-4f67-bdde-2e9447bc84ee +Openstack-Request-Id: req-9e16ffd3-71ee-4b0b-888b-2de0c71a9398 X-Openstack-Ironic-Api-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'}}] +{"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-9adc744e-5c1c-4d94-951d-e78435214d92 +Openstack-Request-Id: req-c9a6d845-3135-45a3-8d2f-5b6684cd8424 X-Openstack-Ironic-Api-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'}}] +{"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-9aa08091-25ed-401a-a3c6-0cf9ec308fde +Openstack-Request-Id: req-407bf776-7309-4542-a75f-3faeb8dc7d56 X-Openstack-Ironic-Api-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\": \"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-80efd68d-481c-4430-bd56-e91e55819b52 +Openstack-Request-Id: req-d9096943-dec0-4067-9ab7-ee85712ed72a X-Openstack-Ironic-Api-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\": \"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-2a0ced53-8e2e-4106-9bfc-abb7f2f184de +Openstack-Request-Id: req-df8caa79-0d2a-4e13-862e-fb177a6b32e6 X-Openstack-Ironic-Api-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\": \"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-f549aafd-f8b7-47d0-8e72-3952ab6227e6 +Openstack-Request-Id: req-dcd8419d-fa0f-450c-afd6-030f1b9f5d23 X-Openstack-Ironic-Api-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\": \"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-55175f5c-de02-4d59-ada1-48a9c2ddcceb +Openstack-Request-Id: req-39fd7e66-2860-41cb-a80d-d3f8fef8c302 X-Openstack-Ironic-Api-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 {} +{"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-08cb7ce3-f73e-410d-b371-70e161224afc +Openstack-Request-Id: req-c0073d0e-5d03-4685-a6cb-5559cf11276b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 {} +{"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-59de923d-b213-43de-a952-c804d2e5014e +Openstack-Request-Id: req-ccf95763-6386-4d20-be7a-accead5123bd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 {} +{"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-0eaa01f4-d7a6-43ed-b85a-eb86899b312c +Openstack-Request-Id: req-522d47b1-cf35-400e-ae4b-536d6a8a0996 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-d25f9eb3-28bb-4ab8-8269-5d3a92f5ec79 +Openstack-Request-Id: req-c5c5751c-429e-4423-b34b-720005307128 X-Openstack-Ironic-Api-Maximum-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\": \"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-ae6b41c3-a068-43e8-9c47-fc5405d6b504 +Openstack-Request-Id: req-2e33ed58-ed4b-4334-9e81-bc89388ef77f X-Openstack-Ironic-Api-Maximum-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 {} +{"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.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.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.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.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.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_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.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.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_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_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.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.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_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.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.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 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6a3682a1-2ba7-4421-9ee8-d746b72bc519 +Openstack-Request-Id: req-bb1c1f4e-9e41-4cc1-94b2-dcb8447ca95c X-Openstack-Ironic-Api-Maximum-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\": \"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-05b3e815-e20e-444b-9dbd-16d0d0245cf7 +Openstack-Request-Id: req-bb1c1f4e-9e41-4cc1-94b2-dcb8447ca95c X-Openstack-Ironic-Api-Maximum-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.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.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.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.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.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.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.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.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 -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/volume/targets +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 -Openstack-Request-Id: req-4168e936-040c-4f7a-a331-baf8bc84b482 +Location: http://localhost/v1/volume/targets/231d3935-f030-4420-831b-f53d8bcf59a6 +Openstack-Request-Id: req-009b90f1-160f-44e0-9be7-3ce7d8d66637 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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": "231d3935-f030-4420-831b-f53d8bcf59a6", "created_at": "2025-02-07T17:34:10.173468+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/231d3935-f030-4420-831b-f53d8bcf59a6", "rel": "self"}, {"href": "http://localhost/volume/targets/231d3935-f030-4420-831b-f53d8bcf59a6", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} +ACL Test GOT Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-4168e936-040c-4f7a-a331-baf8bc84b482 +Location: http://localhost/v1/volume/targets/231d3935-f030-4420-831b-f53d8bcf59a6 +Openstack-Request-Id: req-009b90f1-160f-44e0-9be7-3ce7d8d66637 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"uuid": "231d3935-f030-4420-831b-f53d8bcf59a6", "created_at": "2025-02-07T17:34:10.173468+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/231d3935-f030-4420-831b-f53d8bcf59a6", "rel": "self"}, {"href": "http://localhost/volume/targets/231d3935-f030-4420-831b-f53d8bcf59a6", "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 -Openstack-Request-Id: req-ba75cca5-60fb-47a0-a68a-5040d87dbabe +Location: http://localhost/v1/volume/targets/0087aba4-ce37-4b09-bcae-444ef64e2c24 +Openstack-Request-Id: req-2a562c28-0935-4636-b2d0-d289e5fe4092 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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": "0087aba4-ce37-4b09-bcae-444ef64e2c24", "created_at": "2025-02-07T17:34:10.245763+00:00", "updated_at": null, "boot_index": 3, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/0087aba4-ce37-4b09-bcae-444ef64e2c24", "rel": "self"}, {"href": "http://localhost/volume/targets/0087aba4-ce37-4b09-bcae-444ef64e2c24", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} +ACL Test GOT Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-ba75cca5-60fb-47a0-a68a-5040d87dbabe +Location: http://localhost/v1/volume/targets/0087aba4-ce37-4b09-bcae-444ef64e2c24 +Openstack-Request-Id: req-2a562c28-0935-4636-b2d0-d289e5fe4092 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"uuid": "0087aba4-ce37-4b09-bcae-444ef64e2c24", "created_at": "2025-02-07T17:34:10.245763+00:00", "updated_at": null, "boot_index": 3, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/0087aba4-ce37-4b09-bcae-444ef64e2c24", "rel": "self"}, {"href": "http://localhost/volume/targets/0087aba4-ce37-4b09-bcae-444ef64e2c24", "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 -Openstack-Request-Id: req-69b79471-0e55-4d83-b1fa-59b1645140bd +Location: http://localhost/v1/volume/targets/d2c99629-0b71-4206-b7a2-774a76861d56 +Openstack-Request-Id: req-a071db68-ce26-46ee-9f88-aa0f2ca8d73d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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": "d2c99629-0b71-4206-b7a2-774a76861d56", "created_at": "2025-02-07T17:34:10.324643+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/d2c99629-0b71-4206-b7a2-774a76861d56", "rel": "self"}, {"href": "http://localhost/volume/targets/d2c99629-0b71-4206-b7a2-774a76861d56", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} +ACL Test GOT Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-69b79471-0e55-4d83-b1fa-59b1645140bd +Location: http://localhost/v1/volume/targets/d2c99629-0b71-4206-b7a2-774a76861d56 +Openstack-Request-Id: req-a071db68-ce26-46ee-9f88-aa0f2ca8d73d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"uuid": "d2c99629-0b71-4206-b7a2-774a76861d56", "created_at": "2025-02-07T17:34:10.324643+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/d2c99629-0b71-4206-b7a2-774a76861d56", "rel": "self"}, {"href": "http://localhost/volume/targets/d2c99629-0b71-4206-b7a2-774a76861d56", "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 -Openstack-Request-Id: req-c4e667c8-47bd-4b1b-a4c3-5774edcc6e0d +Location: http://localhost/v1/volume/targets/be85913d-1ce4-4915-88d3-90bf6faeaeb0 +Openstack-Request-Id: req-c175e0c0-96a1-4bb3-9034-5e4e248589f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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": "be85913d-1ce4-4915-88d3-90bf6faeaeb0", "created_at": "2025-02-07T17:34:10.450676+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id3", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/be85913d-1ce4-4915-88d3-90bf6faeaeb0", "rel": "self"}, {"href": "http://localhost/volume/targets/be85913d-1ce4-4915-88d3-90bf6faeaeb0", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} +ACL Test GOT Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-c4e667c8-47bd-4b1b-a4c3-5774edcc6e0d +Location: http://localhost/v1/volume/targets/be85913d-1ce4-4915-88d3-90bf6faeaeb0 +Openstack-Request-Id: req-c175e0c0-96a1-4bb3-9034-5e4e248589f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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'} +{"uuid": "be85913d-1ce4-4915-88d3-90bf6faeaeb0", "created_at": "2025-02-07T17:34:10.450676+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id3", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/be85913d-1ce4-4915-88d3-90bf6faeaeb0", "rel": "self"}, {"href": "http://localhost/volume/targets/be85913d-1ce4-4915-88d3-90bf6faeaeb0", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} +API ACL Testing Path post /v1/volume/targets +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 +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.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.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.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_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_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.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.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_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good ... 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_ipmitool.IPMIToolDriverTestCase.test_power_validate +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate ... 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_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.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_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off ... 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.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_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.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.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.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.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.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_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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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 +/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 +/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_not_list +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_not_list ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_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.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.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_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 +/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.IPMIToolDriverTestCase.test_reboot_timeout_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail ... 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 +/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 +/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) +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-6d02d9de-4daf-4150-9657-8a0d2c50bf39 +Openstack-Request-Id: req-18bfcc49-6b05-43ce-abf2-9a3becc6fe01 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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:volume:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6d02d9de-4daf-4150-9657-8a0d2c50bf39 +Openstack-Request-Id: req-18bfcc49-6b05-43ce-abf2-9a3becc6fe01 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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:volume:create\", \"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 Content-Type: application/json -Openstack-Request-Id: req-4574a972-3662-42b1-aeb1-20804468a607 +Openstack-Request-Id: req-fa30369a-ca22-475d-b40e-589cd827ed3f X-Openstack-Ironic-Api-Maximum-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 +{"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-4574a972-3662-42b1-aeb1-20804468a607 +Openstack-Request-Id: req-fa30369a-ca22-475d-b40e-589cd827ed3f X-Openstack-Ironic-Api-Maximum-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}]}} +{"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 Content-Type: application/json -Openstack-Request-Id: req-c8de5d06-9121-49f2-9663-80da69585039 +Openstack-Request-Id: req-e5064ea3-a129-4e1b-b27f-953889103f53 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-c8de5d06-9121-49f2-9663-80da69585039 +Openstack-Request-Id: req-e5064ea3-a129-4e1b-b27f-953889103f53 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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}]}} +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-cb473daf-a6c2-4cd8-9338-980710861d21 +Openstack-Request-Id: req-be83c7ca-35e9-4d19-9df4-570b21b48dc4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-cb473daf-a6c2-4cd8-9338-980710861d21 +Openstack-Request-Id: req-be83c7ca-35e9-4d19-9df4-570b21b48dc4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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.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.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.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.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.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.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.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean ... 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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 +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-330be9e0-0951-45ef-b943-7bc84240a18e +Openstack-Request-Id: req-0bc512d1-b54a-4fee-8d26-d17612bcb1fa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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:update\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-330be9e0-0951-45ef-b943-7bc84240a18e +Openstack-Request-Id: req-0bc512d1-b54a-4fee-8d26-d17612bcb1fa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"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-143eae5d-0ed1-4386-89af-931791467fad +Openstack-Request-Id: req-b5943e66-f23a-4c30-960a-f8d4106934a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 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-143eae5d-0ed1-4386-89af-931791467fad +Openstack-Request-Id: req-b5943e66-f23a-4c30-960a-f8d4106934a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 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: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-21ebd8c4-e5d0-4220-b645-32e9d0f3001e +Openstack-Request-Id: req-4dccab19-5c11-4278-aade-cd69da32fddb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-21ebd8c4-e5d0-4220-b645-32e9d0f3001e +Openstack-Request-Id: req-4dccab19-5c11-4278-aade-cd69da32fddb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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}]}} -GOT:Response: 403 Forbidden +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-c9da9963-dc69-4060-9655-14e8a512c261 +Openstack-Request-Id: req-88641367-8cfc-46ba-af6d-74fdbdd95588 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c9da9963-dc69-4060-9655-14e8a512c261 +Openstack-Request-Id: req-88641367-8cfc-46ba-af6d-74fdbdd95588 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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.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.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_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_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.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.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.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_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_utils.RedfishUtilsSystemTestCase.test_get_system +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system ... 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 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6dbf5a7f-eade-4a6e-bc0a-1a7a2badb200 +Openstack-Request-Id: req-bdf26aa6-fb84-4a75-8ed5-c205b28f6a6d X-Openstack-Ironic-Api-Maximum-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\": \"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-6dbf5a7f-eade-4a6e-bc0a-1a7a2badb200 +Openstack-Request-Id: req-5530b6ed-f73a-47ce-97bd-6ad1412c98bb X-Openstack-Ironic-Api-Maximum-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 +{"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-226eda76-78f5-44d8-9ac7-2911ac24abdf +Openstack-Request-Id: req-b559389b-2b4c-4dc4-91a9-8d65c3790171 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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}"} +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-226eda76-78f5-44d8-9ac7-2911ac24abdf +Openstack-Request-Id: req-8ab984d1-d407-42a2-a9f0-93267f6e9da5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"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-b4f785db-09ee-4961-8fac-39a86454e940 +Openstack-Request-Id: req-a6cbd61c-b2b4-456a-973d-97d754de40a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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}"} +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-b4f785db-09ee-4961-8fac-39a86454e940 +Openstack-Request-Id: req-7604dcf8-90d3-4b3a-a349-a8968e65c4aa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"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-fe515972-b7f4-459a-a944-27b6096fabb8 +Openstack-Request-Id: req-c689ec16-45e7-405d-89c7-6ecaa5f5d43d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-fe515972-b7f4-459a-a944-27b6096fabb8 +Openstack-Request-Id: req-86b4cfaa-9d9b-467f-84f5-e713f731ecca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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.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.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.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.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.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.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 +{"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-be05e59c-16af-4348-9c46-e33406e0ba76 +X-Openstack-Ironic-Api-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 Content-Type: application/json -Openstack-Request-Id: req-0f645402-cd6c-4f56-a9f1-bbe6f2921820 +Openstack-Request-Id: req-41e7a31c-9996-42e3-9a9e-fab90183262e X-Openstack-Ironic-Api-Maximum-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 {} +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-8233fe18-ec17-464f-ad16-698b8e2788b3 +Openstack-Request-Id: req-e9c8b62f-2a31-420b-8e5a-e496fe9544b0 X-Openstack-Ironic-Api-Maximum-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 {} -GOT:Response: 500 Internal Server Error +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-ce8535f6-a0be-4398-a417-b739fcb82755 +Openstack-Request-Id: req-f7157ae5-b8fc-42be-9ca6-95b0ba688eb5 X-Openstack-Ironic-Api-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 +{"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-1ba3eacb-dd1f-4c17-b994-acb3b5238019 +Openstack-Request-Id: req-9ef09e9f-765c-4a0f-9ed7-e97676240eba X-Openstack-Ironic-Api-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 +{"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-9e820d26-915d-4a51-a510-84def1d17682 +Openstack-Request-Id: req-ce3a1673-7f12-4c7e-8e40-4290e973cfcd X-Openstack-Ironic-Api-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 +{"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_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.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.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_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.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_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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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_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.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.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.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.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.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.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.test_agent.AgentRescueTestCase.test_agent_rescue +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue ... 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.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_ok ... ok +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-56e357af-656f-468b-863e-61fb64c03407 +Openstack-Request-Id: req-895c3d64-8db1-45b2-a50a-f2c2488200c3 X-Openstack-Ironic-Api-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 +{"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-48287df4-cc3f-48b1-a1eb-9b67e979a42f +Openstack-Request-Id: req-895c3d64-8db1-45b2-a50a-f2c2488200c3 X-Openstack-Ironic-Api-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 +{"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-fd2b1157-e90b-4ac3-8c71-85abcbc065b3 +Openstack-Request-Id: req-1cb7b706-91fe-44c2-87e8-aa89a60a9588 X-Openstack-Ironic-Api-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 +{"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-f6ecd49a-84e8-4793-b961-67c83b7b1c61 +Openstack-Request-Id: req-1cb7b706-91fe-44c2-87e8-aa89a60a9588 X-Openstack-Ironic-Api-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\": \"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-bd9bb6fe-e90f-4f4f-ba02-7cc24f96915b +Openstack-Request-Id: req-b56c19a0-ca6d-49cf-9b6a-843f788dc388 X-Openstack-Ironic-Api-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\": \"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-42ac6f18-bc45-40db-acb2-5ef48612a9e6 +Openstack-Request-Id: req-b56c19a0-ca6d-49cf-9b6a-843f788dc388 X-Openstack-Ironic-Api-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\": \"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-db521658-1907-408f-a7c4-e1ffce80ae94 +Openstack-Request-Id: req-643c38c2-ae8f-4190-8dd9-a3de03f32f0c X-Openstack-Ironic-Api-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 +{"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-83890969-b8a3-4680-b4fe-320728966004 +Openstack-Request-Id: req-643c38c2-ae8f-4190-8dd9-a3de03f32f0c X-Openstack-Ironic-Api-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 +{"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-8af6b48f-560f-4174-81b4-eb99b8b042ca +Openstack-Request-Id: req-c06da97c-e4ff-45d8-9176-3b8741042e8b X-Openstack-Ironic-Api-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}"} -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.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.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.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.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.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_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.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.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.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.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.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_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.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.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.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_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.ContinueNodeDeployTestCase.test_continue_node_deploy_locked -ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_locked ... 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 -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console {} -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-1d8a7605-bcd3-4e3b-a7d2-1a4670d0d359 +Openstack-Request-Id: req-c06da97c-e4ff-45d8-9176-3b8741042e8b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-1d8a7605-bcd3-4e3b-a7d2-1a4670d0d359 +Openstack-Request-Id: req-4290b6f0-8233-4bc7-88f3-a6266a0d32a2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console {} -GOT:Response: 503 Service Unavailable +{"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-3f02fba1-036b-4a02-8cee-ee35745958fc +Openstack-Request-Id: req-4290b6f0-8233-4bc7-88f3-a6266a0d32a2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"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-3f02fba1-036b-4a02-8cee-ee35745958fc +Openstack-Request-Id: req-fec8d9e9-ccec-4d20-b6e8-cc48590375c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"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-e640673d-7777-4618-a74e-f701f271a6c3 +Openstack-Request-Id: req-fec8d9e9-ccec-4d20-b6e8-cc48590375c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-e640673d-7777-4618-a74e-f701f271a6c3 +Openstack-Request-Id: req-13ceac65-5a5f-41b7-b0c3-34a9b46292a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console {} -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_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.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_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.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.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.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.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_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_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.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.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.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_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.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_agent.AgentRescueTestCase.test_agent_rescue_power_on +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_power_on ... 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.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_agent.AgentRescueTestCase.test_agent_rescue_validate +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate ... 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.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.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_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.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.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.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.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.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.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_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.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.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.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.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.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.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_agent.AgentRescueTestCase.test_agent_unrescue +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue ... 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.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.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_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 +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-adbd234c-9dd0-4822-90d3-bb20c385b713 +Openstack-Request-Id: req-13ceac65-5a5f-41b7-b0c3-34a9b46292a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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/volume/targets +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume/targets {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-adbd234c-9dd0-4822-90d3-bb20c385b713 +Openstack-Request-Id: req-1b4b0d3d-853b-478d-a0bb-15b8e835d8d7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console {} -GOT:Response: 403 Forbidden +{"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-8c7fcf10-d9ca-4e91-90f8-65ec8a85117a +Openstack-Request-Id: req-1b4b0d3d-853b-478d-a0bb-15b8e835d8d7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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": "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"}]} +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/targets +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/targets {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8c7fcf10-d9ca-4e91-90f8-65ec8a85117a +Openstack-Request-Id: req-0ff21a7d-8136-4880-bc8b-1f111f556275 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console {} +{"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-0ff21a7d-8136-4880-bc8b-1f111f556275 +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"}]} +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/targets +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/targets {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8caa15ba-2624-45ff-8da5-dbd7dd1193dc +Openstack-Request-Id: req-9714e722-c2cc-44ff-b20c-591851f3b718 X-Openstack-Ironic-Api-Maximum-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-8caa15ba-2624-45ff-8da5-dbd7dd1193dc +Openstack-Request-Id: req-9714e722-c2cc-44ff-b20c-591851f3b718 X-Openstack-Ironic-Api-Maximum-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 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 +API ACL Testing Path get /v1/drivers +GET: /v1/drivers {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-35225e17-a0f3-4378-a82b-d43eaaae9799 +Openstack-Request-Id: req-a038908d-3867-41e1-9f74-db6e15017a88 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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: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-35225e17-a0f3-4378-a82b-d43eaaae9799 +Openstack-Request-Id: req-a038908d-3867-41e1-9f74-db6e15017a88 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/console -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console {'enabled': True} -GOT:Response: 503 Service Unavailable +{"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-8d0d4ce9-05f5-4761-83a9-533fde7bdf32 +Openstack-Request-Id: req-50b6bc2e-6270-4bf8-9f89-b8fb63170b20 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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: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-8d0d4ce9-05f5-4761-83a9-533fde7bdf32 +Openstack-Request-Id: req-50b6bc2e-6270-4bf8-9f89-b8fb63170b20 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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 -API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru/methods -GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} +{"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-2045e9b2-63b4-4573-a510-801f34e44ecf +Openstack-Request-Id: req-6911829f-786d-4e1b-a6e7-da4e00758cf8 X-Openstack-Ironic-Api-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 {} -GOT:Response: 500 Internal Server Error +{"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-94238cfc-a83a-4183-b3c9-6dc9c16a7bd0 +Openstack-Request-Id: req-6911829f-786d-4e1b-a6e7-da4e00758cf8 X-Openstack-Ironic-Api-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}"} +{"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/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-35be1278-9080-40d9-b8ec-93a4ea2e7c11 +Openstack-Request-Id: req-a48d09e4-8306-43a8-ab05-72faf6defe0a X-Openstack-Ironic-Api-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 -GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} -GOT:Response: 500 Internal Server Error +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.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_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_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_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.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.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 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4d6df544-e29e-4b53-af96-19a4304ebbcf +Openstack-Request-Id: req-a6dddeab-9f8d-42fc-8d04-10c071a8df65 X-Openstack-Ironic-Api-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 -GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} -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/ports +GET: /v1/ports {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-09455c29-a0c0-46dc-870d-0aa7e7a97686 +Openstack-Request-Id: req-fc4f4199-489c-4149-a428-6080bdb848c6 X-Openstack-Ironic-Api-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 -GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} -GOT:Response: 500 Internal Server Error +{"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-f2933a0c-c90c-433b-8b31-b75a36dab7f7 +Openstack-Request-Id: req-04be17a2-f68e-4543-bc8d-ea9c84e983a6 X-Openstack-Ironic-Api-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 post /v1/drivers/fake-driverz/vendor_passthru?method=test -POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None -GOT:Response: 500 Internal Server Error +{"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-d6b9558b-daac-41e6-aa85-d843a1253ea6 +Openstack-Request-Id: req-c50d45e0-f5c4-4067-8fe1-d214f3c1d07c X-Openstack-Ironic-Api-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 post /v1/drivers/fake-driverz/vendor_passthru?method=test -POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None -GOT:Response: 500 Internal Server Error +{"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-bd6858e9-a1de-45ad-91f4-5d5768c24352 +Openstack-Request-Id: req-7f9fa796-e259-42fc-b55e-410c17e4d053 X-Openstack-Ironic-Api-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 post /v1/drivers/fake-driverz/vendor_passthru?method=test -POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None -GOT:Response: 500 Internal Server Error +{"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-ba2102fa-3c4b-43fc-ba61-58cda539055c +Openstack-Request-Id: req-3b8a37d6-4665-4490-9dc9-cff9eded0879 X-Openstack-Ironic-Api-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 put /v1/drivers/fake-driverz/vendor_passthru?method=test -PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None -GOT:Response: 500 Internal Server Error +{"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-456348d3-9479-4a2c-b962-fbf1f01ef377 +Openstack-Request-Id: req-4927dcd0-c47e-440f-980d-47815e925715 X-Openstack-Ironic-Api-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 put /v1/drivers/fake-driverz/vendor_passthru?method=test -PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None -GOT:Response: 500 Internal Server Error +{"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-89a24b8c-4eb3-44fb-ab5e-5ff6ae413e0b +Openstack-Request-Id: req-42cebfa4-7f95-4493-bb60-54d1578f3f5b X-Openstack-Ironic-Api-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 put /v1/drivers/fake-driverz/vendor_passthru?method=test -PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None -GOT:Response: 500 Internal Server Error +{"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-c155e96d-585c-4576-af56-e89b6bd0d80b +Openstack-Request-Id: req-b4747389-9407-43ab-b183-aa4fdbfa1cbe X-Openstack-Ironic-Api-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/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} -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.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.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.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 +{"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-a4f2cf20-c253-494d-bb6c-1a64bdbe88f1 +Openstack-Request-Id: req-3b27f64c-3f6e-4f99-a79a-de4bf84d39e2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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-a4f2cf20-c253-494d-bb6c-1a64bdbe88f1 +Openstack-Request-Id: req-8366a4b0-a112-465c-967c-700183efcd35 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-a45a3dc4-244c-4672-b084-385eebf9b0f5 +Openstack-Request-Id: req-66f4b41d-8187-4521-bd99-24df43c19cea X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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-a45a3dc4-244c-4672-b084-385eebf9b0f5 +Openstack-Request-Id: req-cd9466a5-bc56-4096-a696-5e1461a486a8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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} -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 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-0ae43a5e-14e4-41bf-8d07-a31b0e6d3e08 +Openstack-Request-Id: req-b333c736-891a-42c8-9ecd-afa2baa6c759 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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-0ae43a5e-14e4-41bf-8d07-a31b0e6d3e08 +Openstack-Request-Id: req-b7f69655-8d4e-4824-8b8e-6780ab660a4b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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} -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'}}] +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.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.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.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration ... 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_agent.TestAgentDeploy.test_clean_up +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up ... 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.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.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.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.test_base.RAIDInterfaceTestCase.test_validate +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate ... 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.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.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.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.test_agent.TestAgentDeploy.test_deploy_fast_track +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_fast_track ... 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.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.test_base.TestManagementInterface.test_get_mac_addresses +ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_mac_addresses ... 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.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.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.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.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.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.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.TestAgentDeploy.test_deploy_with_deployment_reboot +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_with_deployment_reboot ... 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_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.test_drac.IDRACHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_interfaces ... 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.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 +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_no_vendor +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_no_vendor ... 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.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 +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.TestAgentDeploy.test_get_properties +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_properties ... 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.test_drac.IDRACHardwareTestCase.test_override_with_idrac +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_idrac ... 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.test_agent.TestAgentDeploy.test_prepare +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare ... 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 +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_raid +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid ... ok +ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-90be09b2-c272-45d8-b349-a903c41c6d5e +Openstack-Request-Id: req-a48d09e4-8306-43a8-ab05-72faf6defe0a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"\\\"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 {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-90be09b2-c272-45d8-b349-a903c41c6d5e +Openstack-Request-Id: req-e061fd9e-cb01-4bb0-8f5c-e42d5552649c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 {} -GOT:Response: 403 Forbidden +{"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-4b707384-1edf-4597-b90f-0ea90e852e8a +Openstack-Request-Id: req-e061fd9e-cb01-4bb0-8f5c-e42d5552649c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"\\\"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 {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-4b707384-1edf-4597-b90f-0ea90e852e8a +Openstack-Request-Id: req-3bf75ee8-7e17-4036-a94a-d07f3bea41d0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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-8e521463-d046-459f-9653-c81174f84133 +Openstack-Request-Id: req-3bf75ee8-7e17-4036-a94a-d07f3bea41d0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"\\\"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/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/bios +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/bios {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8e521463-d046-459f-9653-c81174f84133 +Openstack-Request-Id: req-8f83d9ff-b383-4ba6-ae68-c37022b6e0a0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"bios": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b2c1be99-634b-44c6-8b1b-082a1ebe8621 +Openstack-Request-Id: req-8f83d9ff-b383-4ba6-ae68-c37022b6e0a0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"bios": []} +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/bios +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/bios {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b2c1be99-634b-44c6-8b1b-082a1ebe8621 +Openstack-Request-Id: req-9b8db09c-cc99-4554-b481-d64285396eff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"bios": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-837a38b2-7477-4000-8eab-4e451c5bd4c9 +Openstack-Request-Id: req-9b8db09c-cc99-4554-b481-d64285396eff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"bios": []} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/bios +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/bios {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-837a38b2-7477-4000-8eab-4e451c5bd4c9 +Openstack-Request-Id: req-0adf08a0-e799-4660-a664-b49f1080caec X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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.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.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.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 -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_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.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_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_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.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.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.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.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_scoped_canary_241_conductors_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_241_conductors_get_member ... 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.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.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.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.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.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.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue ... 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.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 -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-adfa7236-68a2-46e6-9527-c34ab3e2d37d +Openstack-Request-Id: req-0adf08a0-e799-4660-a664-b49f1080caec X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +API ACL Testing Path get /v1/conductors +GET: /v1/conductors {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-adfa7236-68a2-46e6-9527-c34ab3e2d37d +Openstack-Request-Id: req-80f20176-44e6-488b-99cb-b1c0bfc0fdad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-97db05b0-cce8-4978-ad11-bf347341dc26 +Openstack-Request-Id: req-80f20176-44e6-488b-99cb-b1c0bfc0fdad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"\\\"baremetal:conductor: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/conductors +GET: /v1/conductors {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-97db05b0-cce8-4978-ad11-bf347341dc26 +Openstack-Request-Id: req-0a9c0ff0-5ae3-4c8d-b1d0-b06966149ebf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-af86c74e-8b6b-4a4c-9f50-b437a33a4b7c +Openstack-Request-Id: req-0a9c0ff0-5ae3-4c8d-b1d0-b06966149ebf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"\\\"baremetal:conductor: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/conductors +GET: /v1/conductors {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-af86c74e-8b6b-4a4c-9f50-b437a33a4b7c +Openstack-Request-Id: req-3f0f6c87-92b0-42fc-814e-ad1c35c46d5b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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.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_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states ... 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_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.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.test_drac.IDRACHardwareTestCase.test_override_with_redfish_bios +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_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 +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_inspect +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_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.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.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.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_agent.TestAgentDeploy.test_prepare_boot_from_volume +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_boot_from_volume ... 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_raid +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_raid ... 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.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.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 +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_virtual_media_boot +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_virtual_media_boot ... 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.test_redfish.RedfishHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_redfish.RedfishHardwareTestCase.test_default_interfaces ... 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.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.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.test_snmp.SNMPHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces ... 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.test_snmp.SNMPHardwareTestCase.test_fake_management +ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_fake_management ... 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.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties +ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties ... 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.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method +ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method ... ok +ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-97001796-7a06-420d-ac1f-423ed4597b69 +Openstack-Request-Id: req-3f0f6c87-92b0-42fc-814e-ad1c35c46d5b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"\\\"baremetal:conductor: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/allocations +GET: /v1/allocations {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-97001796-7a06-420d-ac1f-423ed4597b69 +Openstack-Request-Id: req-c24c3a22-e6d9-4cec-912e-c4ec0a0c1914 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"allocations": [{"uuid": "df226162-0ebf-4d3f-969d-97241474a3db", "created_at": "2025-02-07T17:34:12.583597+00:00", "updated_at": "2025-02-07T17:34:12.585536+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/df226162-0ebf-4d3f-969d-97241474a3db", "rel": "self"}, {"href": "http://localhost/allocations/df226162-0ebf-4d3f-969d-97241474a3db", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c9038332-9612-49fa-8732-f002e7688cf3 +Openstack-Request-Id: req-c24c3a22-e6d9-4cec-912e-c4ec0a0c1914 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"allocations": [{"uuid": "df226162-0ebf-4d3f-969d-97241474a3db", "created_at": "2025-02-07T17:34:12.583597+00:00", "updated_at": "2025-02-07T17:34:12.585536+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/df226162-0ebf-4d3f-969d-97241474a3db", "rel": "self"}, {"href": "http://localhost/allocations/df226162-0ebf-4d3f-969d-97241474a3db", "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-c9038332-9612-49fa-8732-f002e7688cf3 +Openstack-Request-Id: req-2657542f-8a03-4c0b-b778-754a7524cd93 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"allocations": [{"uuid": "ca339fe8-47f8-424d-a452-16d68db96a36", "created_at": "2025-02-07T17:34:12.651583+00:00", "updated_at": "2025-02-07T17:34:12.653427+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/ca339fe8-47f8-424d-a452-16d68db96a36", "rel": "self"}, {"href": "http://localhost/allocations/ca339fe8-47f8-424d-a452-16d68db96a36", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e08df294-f1c2-4732-b1ed-2fca1a808c81 +Openstack-Request-Id: req-2657542f-8a03-4c0b-b778-754a7524cd93 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"allocations": [{"uuid": "ca339fe8-47f8-424d-a452-16d68db96a36", "created_at": "2025-02-07T17:34:12.651583+00:00", "updated_at": "2025-02-07T17:34:12.653427+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/ca339fe8-47f8-424d-a452-16d68db96a36", "rel": "self"}, {"href": "http://localhost/allocations/ca339fe8-47f8-424d-a452-16d68db96a36", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} +API ACL Testing Path get /v1/allocations/87cbac54-4bad-4a0c-80bb-b9ab91d1bf7a +GET: /v1/allocations/87cbac54-4bad-4a0c-80bb-b9ab91d1bf7a {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e08df294-f1c2-4732-b1ed-2fca1a808c81 +Openstack-Request-Id: req-5a656449-333e-4e1d-ac4d-239e34287756 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"uuid": "87cbac54-4bad-4a0c-80bb-b9ab91d1bf7a", "created_at": "2025-02-07T17:34:12.710887+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/87cbac54-4bad-4a0c-80bb-b9ab91d1bf7a", "rel": "self"}, {"href": "http://localhost/allocations/87cbac54-4bad-4a0c-80bb-b9ab91d1bf7a", "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-5aa73fb8-6de5-432b-b48f-8ddb9eff9a14 +Openstack-Request-Id: req-5a656449-333e-4e1d-ac4d-239e34287756 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"uuid": "87cbac54-4bad-4a0c-80bb-b9ab91d1bf7a", "created_at": "2025-02-07T17:34:12.710887+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/87cbac54-4bad-4a0c-80bb-b9ab91d1bf7a", "rel": "self"}, {"href": "http://localhost/allocations/87cbac54-4bad-4a0c-80bb-b9ab91d1bf7a", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} +API ACL Testing Path get /v1/allocations/4ec6efa8-024b-4c2f-b893-599f6eefd819 +GET: /v1/allocations/4ec6efa8-024b-4c2f-b893-599f6eefd819 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-5aa73fb8-6de5-432b-b48f-8ddb9eff9a14 +Openstack-Request-Id: req-bdc17c9b-7f52-42ae-a1cb-c4f880222dc9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"uuid": "4ec6efa8-024b-4c2f-b893-599f6eefd819", "created_at": "2025-02-07T17:34:12.785756+00:00", "updated_at": "2025-02-07T17:34:12.787546+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/4ec6efa8-024b-4c2f-b893-599f6eefd819", "rel": "self"}, {"href": "http://localhost/allocations/4ec6efa8-024b-4c2f-b893-599f6eefd819", "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-7d236644-484c-49ef-9210-aa36afae3cc0 +Openstack-Request-Id: req-bdc17c9b-7f52-42ae-a1cb-c4f880222dc9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"uuid": "4ec6efa8-024b-4c2f-b893-599f6eefd819", "created_at": "2025-02-07T17:34:12.785756+00:00", "updated_at": "2025-02-07T17:34:12.787546+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/4ec6efa8-024b-4c2f-b893-599f6eefd819", "rel": "self"}, {"href": "http://localhost/allocations/4ec6efa8-024b-4c2f-b893-599f6eefd819", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} +API ACL Testing Path delete /v1/allocations/7879cc32-a9c0-46e9-9f74-948dabb74fa1 +DELETE: /v1/allocations/7879cc32-a9c0-46e9-9f74-948dabb74fa1 +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.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.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.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.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.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_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.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.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.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.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.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.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.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.drivers.test_utils.UtilsTestCase.test_capabilities_not_string +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string ... 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.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.test_utils.UtilsTestCase.test_capabilities_to_dict +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict ... 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.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 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7d236644-484c-49ef-9210-aa36afae3cc0 +Openstack-Request-Id: req-e6dd283f-6194-4996-8fd4-a4bce84fd0f5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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.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.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_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance ... 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.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.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.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.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.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.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.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.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.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 +{"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-709c3697-0630-471c-a9d0-753634e1ea5c +Openstack-Request-Id: req-e588441b-4df4-458c-8f04-e3e24575de7a X-Openstack-Ironic-Api-Maximum-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 {} +{"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-a235fd23-99ba-448d-a19b-fdbe01d00295 +Openstack-Request-Id: req-b5d8e671-7ec5-4c17-af67-c2a6e6cb2af6 X-Openstack-Ironic-Api-Maximum-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 {} +{"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-8860e81c-76a8-49b9-b531-7e03ec3e2f42 +Openstack-Request-Id: req-9e928de2-d687-415a-9109-f1b473a6eace X-Openstack-Ironic-Api-Maximum-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 {} +{"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-fe9cd04f-674e-46d8-98a9-9391f50554e1 +Openstack-Request-Id: req-d8b1b1ec-cb72-490b-ab7c-ad5ab714e7fe X-Openstack-Ironic-Api-Maximum-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 {} +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-64711532-e1fa-4f6d-bdb4-5358023075d4 +Openstack-Request-Id: req-f8799d3e-9093-4930-827a-57f686f37f2d X-Openstack-Ironic-Api-Maximum-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 {} +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-617bdf1c-3e4b-412d-87a4-3a093d4b0248 +Openstack-Request-Id: req-67179874-7e6a-471d-a2cc-b53199b6b3ed X-Openstack-Ironic-Api-Maximum-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/conductors -GET: /v1/conductors {} -GOT:Response: 500 Internal Server Error +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-5306162e-c132-4f45-80ce-41d87a2fd199 +Openstack-Request-Id: req-987b4616-305a-426c-b663-829f43ae16df X-Openstack-Ironic-Api-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}"} -API ACL Testing Path get /v1/conductors -GET: /v1/conductors {} -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/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-43aab50e-5855-4ba9-bbc4-0c84a42f5343 +Openstack-Request-Id: req-d2973729-4e37-4743-938c-b1e8cb7e3d27 X-Openstack-Ironic-Api-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}"} -API ACL Testing Path get /v1/conductors -GET: /v1/conductors {} -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/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-9a387389-dfc4-47d6-a9db-03935f940b16 +Openstack-Request-Id: req-30e429d0-713d-4a7b-904d-1d36bac3f028 X-Openstack-Ironic-Api-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}"} -API ACL Testing Path get /v1/conductors/test-conductor-node -GET: /v1/conductors/test-conductor-node {} -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/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-93f751db-5fdc-456f-b421-0353fa040083 +Openstack-Request-Id: req-3403aae5-b453-42bb-a686-eab87ff0a417 X-Openstack-Ironic-Api-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}"} -API ACL Testing Path get /v1/conductors/test-conductor-node -GET: /v1/conductors/test-conductor-node {} -GOT:Response: 500 Internal Server Error +{"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-db869bba-adf7-4ada-b175-cb1ef1266ed5 +Openstack-Request-Id: req-0648e489-995c-4c29-a773-99212baa0653 X-Openstack-Ironic-Api-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}"} -API ACL Testing Path get /v1/conductors/test-conductor-node -GET: /v1/conductors/test-conductor-node {} -GOT:Response: 500 Internal Server Error +{"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-f55ea1c9-a5f9-4d3d-b1e7-2f6bd4aaa34f +Openstack-Request-Id: req-06b96f28-8bbb-47c0-af7e-912cf5110016 X-Openstack-Ironic-Api-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}"} -API ACL Testing Path post /v1/allocations -POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} -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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c07872ac-1888-4389-82df-6281520e7447 +Openstack-Request-Id: req-ac187624-167b-4676-abcf-ec9d82da8721 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 post /v1/allocations -POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} -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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-df6f781c-5e79-4a26-b0c8-bbdac8361bbf +Openstack-Request-Id: req-584497d7-087d-4c07-ba96-05a01bbc06f4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: 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 +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.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.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_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.test_utils.UtilsTestCase.test_ensure_next_boot_device +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device ... 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.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.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.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_rescue_states +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states ... 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_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.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.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_prepare_storage_write_false +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_storage_write_false ... 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.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_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.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_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_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.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.test_utils.UtilsTestCase.test_normalize_mac_unicode +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_unicode ... ok +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create ... 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.objects.test_chassis.TestChassisObject.test_get_bad_id_and_uuid +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_bad_id_and_uuid ... ok +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-9ae96515-b3f3-4a5e-b5f3-1da1f21fb137 +Openstack-Request-Id: req-9e110083-afb8-423d-8bac-31c191b5a7ee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} -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.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.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.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.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_manager.DoNodeRescueTestCase.test_do_node_unrescue -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue ... 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 -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-3bc4e2e5-177b-4498-bda9-2e2e0a5ef1f8 +Openstack-Request-Id: req-9e110083-afb8-423d-8bac-31c191b5a7ee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +API ACL Testing Path delete /v1/allocations/9b484863-2e6a-4efb-943d-c204a3c2efbe +DELETE: /v1/allocations/9b484863-2e6a-4efb-943d-c204a3c2efbe +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-3bc4e2e5-177b-4498-bda9-2e2e0a5ef1f8 +Openstack-Request-Id: req-55b8161d-1d28-4473-9452-93494472167d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 {} -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-d37881d0-f9e5-41da-bb66-35aa67920462 +Openstack-Request-Id: req-55b8161d-1d28-4473-9452-93494472167d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +API ACL Testing Path delete /v1/allocations/7b645880-80eb-4573-9153-c3f1675f98aa +DELETE: /v1/allocations/7b645880-80eb-4573-9153-c3f1675f98aa +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d37881d0-f9e5-41da-bb66-35aa67920462 +Openstack-Request-Id: req-c52b6474-bb9c-4ade-ab33-804d885724d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 {} -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-10d5abd3-01ba-4d56-a73a-747036f2195f +Openstack-Request-Id: req-c52b6474-bb9c-4ade-ab33-804d885724d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +API ACL Testing Path delete /v1/allocations/d144357c-ef5a-4988-85d8-151ef5a1bc4b +DELETE: /v1/allocations/d144357c-ef5a-4988-85d8-151ef5a1bc4b +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-10d5abd3-01ba-4d56-a73a-747036f2195f +Openstack-Request-Id: req-f4cfbd25-8f08-460c-a7fb-ca1530b2d286 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 {} -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-a9561b90-dca0-436c-8194-6fa7bca53189 +Openstack-Request-Id: req-f4cfbd25-8f08-460c-a7fb-ca1530b2d286 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +API ACL Testing Path delete /v1/allocations/e5f729e8-2d41-4392-a94b-0fcb6a23eece +DELETE: /v1/allocations/e5f729e8-2d41-4392-a94b-0fcb6a23eece +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-a9561b90-dca0-436c-8194-6fa7bca53189 +Openstack-Request-Id: req-53436173-5d9e-43f7-b54c-b7c70d10854d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test -POST: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test None -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-8821c447-f4ec-4b4a-adf2-4b41a9c7afeb +Openstack-Request-Id: req-53436173-5d9e-43f7-b54c-b7c70d10854d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +API ACL Testing Path delete /v1/allocations/63e3d660-e8bb-4de7-8e6e-1fc012f15b32 +DELETE: /v1/allocations/63e3d660-e8bb-4de7-8e6e-1fc012f15b32 +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-8821c447-f4ec-4b4a-adf2-4b41a9c7afeb +Openstack-Request-Id: req-c2ffd95c-c186-4fb7-adc3-2b993be56601 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test -POST: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test None -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-ad328d8e-16ce-4e4b-b2aa-608a8e35a008 +Openstack-Request-Id: req-c2ffd95c-c186-4fb7-adc3-2b993be56601 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +API ACL Testing Path patch /v1/allocations/613177cf-6a28-46e5-b62f-1d9baf29f4fe +PATCH: /v1/allocations/613177cf-6a28-46e5-b62f-1d9baf29f4fe [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ad328d8e-16ce-4e4b-b2aa-608a8e35a008 +Openstack-Request-Id: req-f2480327-1c14-41f4-87ba-d5184c4609f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test -POST: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test None -GOT:Response: 403 Forbidden +{"uuid": "613177cf-6a28-46e5-b62f-1d9baf29f4fe", "created_at": "2025-02-07T17:34:13.321848+00:00", "updated_at": "2025-02-07T17:34:13.356336+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/613177cf-6a28-46e5-b62f-1d9baf29f4fe", "rel": "self"}, {"href": "http://localhost/allocations/613177cf-6a28-46e5-b62f-1d9baf29f4fe", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3f2b26cb-6192-49ff-9e70-aee1da4d699e +Openstack-Request-Id: req-f2480327-1c14-41f4-87ba-d5184c4609f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"uuid": "613177cf-6a28-46e5-b62f-1d9baf29f4fe", "created_at": "2025-02-07T17:34:13.321848+00:00", "updated_at": "2025-02-07T17:34:13.356336+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/613177cf-6a28-46e5-b62f-1d9baf29f4fe", "rel": "self"}, {"href": "http://localhost/allocations/613177cf-6a28-46e5-b62f-1d9baf29f4fe", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} +API ACL Testing Path patch /v1/allocations/359951f8-c30e-490d-8567-b7542daae354 +PATCH: /v1/allocations/359951f8-c30e-490d-8567-b7542daae354 [{'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.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.objects.test_chassis.TestChassisObject.test_get_by_id +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id ... 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.objects.test_chassis.TestChassisObject.test_get_by_uuid +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid ... 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.objects.test_chassis.TestChassisObject.test_list +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list ... 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.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_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.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.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 +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.objects.test_chassis.TestChassisObject.test_save_after_refresh +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save_after_refresh ... 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.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.objects.test_deployment.TestDeploymentObject.test_create +ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_create ... 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.objects.test_deployment.TestDeploymentObject.test_create_with_node +ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_create_with_node ... 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.test_agent.TestAgentDeploy.test_validate +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate ... ok +ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy +ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy ... 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.objects.test_deployment.TestDeploymentObject.test_destroy_with_node +ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy_with_node ... 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.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_deployment.TestDeploymentObject.test_get_by_node_uuid +ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_get_by_node_uuid ... 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.objects.test_deployment.TestDeploymentObject.test_get_by_uuid +ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_get_by_uuid ... 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.objects.test_deployment.TestDeploymentObject.test_not_found +ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_not_found ... 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.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.objects.test_deployment.TestDeploymentObject.test_refresh +ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_refresh ... 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.objects.test_portgroup.TestPortgroupObject.test_create +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_create ... 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.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.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.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.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.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_portgroup.TestPortgroupObject.test_get_by_name +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name ... 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.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_portgroup.TestPortgroupObject.test_list +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list ... 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.TestPortgroupObject.test_payload_schemas +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas ... 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.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 +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3f2b26cb-6192-49ff-9e70-aee1da4d699e +Openstack-Request-Id: req-63d473be-ba9f-4a65-86c0-aaf386d9336d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test -POST: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test None -GOT:Response: 403 Forbidden +{"uuid": "359951f8-c30e-490d-8567-b7542daae354", "created_at": "2025-02-07T17:34:13.402965+00:00", "updated_at": "2025-02-07T17:34:13.428722+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/359951f8-c30e-490d-8567-b7542daae354", "rel": "self"}, {"href": "http://localhost/allocations/359951f8-c30e-490d-8567-b7542daae354", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-2782a18d-3370-4614-a3b8-5bad098dd55d +Openstack-Request-Id: req-63d473be-ba9f-4a65-86c0-aaf386d9336d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"uuid": "359951f8-c30e-490d-8567-b7542daae354", "created_at": "2025-02-07T17:34:13.402965+00:00", "updated_at": "2025-02-07T17:34:13.428722+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/359951f8-c30e-490d-8567-b7542daae354", "rel": "self"}, {"href": "http://localhost/allocations/359951f8-c30e-490d-8567-b7542daae354", "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-2782a18d-3370-4614-a3b8-5bad098dd55d +Openstack-Request-Id: req-961a115a-13ff-450c-ac00-1ebe069f3f8a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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.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.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.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_manager.DoNodeRescueTestCase.test_do_node_unrescue_maintenance -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_maintenance ... 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.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.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.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.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.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort ... 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.conductor.test_periodics.NodePeriodicTestCase.test_exclusive -ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_exclusive ... 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.conductor.test_periodics.NodePeriodicTestCase.test_interface_check -ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_interface_check ... 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.conductor.test_periodics.NodePeriodicTestCase.test_limit -ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_limit ... 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.conductor.test_periodics.NodePeriodicTestCase.test_never_run -ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_never_run ... 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.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 -POST: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test None -GOT:Response: 403 Forbidden +{"allocations": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c4903464-1b19-42ab-bf02-4c51b8df72a0 +Openstack-Request-Id: req-961a115a-13ff-450c-ac00-1ebe069f3f8a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"allocations": []} +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-c4903464-1b19-42ab-bf02-4c51b8df72a0 +Openstack-Request-Id: req-4012b747-6f97-437f-b39d-d75d78a9fe9d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-4cf18e8d-b956-4a8d-b062-100e2366d42b +Openstack-Request-Id: req-4012b747-6f97-437f-b39d-d75d78a9fe9d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +API ACL Testing Path post /v1/allocations +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-4cf18e8d-b956-4a8d-b062-100e2366d42b +Openstack-Request-Id: req-ebd013b9-a831-4b5f-957b-9971085d2416 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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-ff23e349-9782-4277-827a-37772a115239 +Openstack-Request-Id: req-ebd013b9-a831-4b5f-957b-9971085d2416 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +API ACL Testing Path post /v1/allocations +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-ff23e349-9782-4277-827a-37772a115239 +Openstack-Request-Id: req-f365f524-3085-4639-9ca9-c35b2470bb77 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"Nodes cannot be found: 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f, 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881\", \"debuginfo\": null}"} +ACL Test GOT Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-553bca13-a03a-4dc2-aba4-045a8c24306d +Openstack-Request-Id: req-f365f524-3085-4639-9ca9-c35b2470bb77 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"Nodes cannot be found: 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f, 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/allocations +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-553bca13-a03a-4dc2-aba4-045a8c24306d +Openstack-Request-Id: req-a23adca3-1e36-49a0-9b25-5f7057b43f1b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 -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-f1e5e2fe-c5ce-4f23-8537-c88bba224036 +Openstack-Request-Id: req-a23adca3-1e36-49a0-9b25-5f7057b43f1b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +API ACL Testing Path post /v1/allocations +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-f1e5e2fe-c5ce-4f23-8537-c88bba224036 +Openstack-Request-Id: req-c2fd28a2-a6f8-452f-a4c2-fdb4d896bc6c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 -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-e2fc132d-53f0-4a31-bd07-8bde74bce3d5 +Openstack-Request-Id: req-c2fd28a2-a6f8-452f-a4c2-fdb4d896bc6c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +API ACL Testing Path get /v1/allocations/930816dc-a0fa-447c-b947-b3f8bc7ba512 +GET: /v1/allocations/930816dc-a0fa-447c-b947-b3f8bc7ba512 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e2fc132d-53f0-4a31-bd07-8bde74bce3d5 +Openstack-Request-Id: req-5e273eb4-bfb4-4154-a107-f63f3e8d20ee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 930816dc-a0fa-447c-b947-b3f8bc7ba512 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c45b7ca4-d1a4-4f6f-9ae4-987b49c29175 +Openstack-Request-Id: req-5e273eb4-bfb4-4154-a107-f63f3e8d20ee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"Allocation 930816dc-a0fa-447c-b947-b3f8bc7ba512 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.objects.test_portgroup.TestPortgroupObject.test_save +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save ... 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.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh ... 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.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_agent.TestAgentDeploy.test_validate_invalid_root_device_hints +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints ... 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'}], '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'}} +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 +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c45b7ca4-d1a4-4f6f-9ae4-987b49c29175 +Openstack-Request-Id: req-b912c760-8c1f-4f9f-a6b3-885129ab0dca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-ed022922-7bd8-40d6-bd96-d085be6c88a0 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-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-ed022922-7bd8-40d6-bd96-d085be6c88a0 +Openstack-Request-Id: req-1621b307-e5ae-463d-9087-8e6fa6d9affa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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.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.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_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.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_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.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_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.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_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.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 -API ACL Testing Path get /v1/allocations -GET: /v1/allocations {} +{"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-7bad2e98-de23-41b9-b5de-05e85c12365f +Openstack-Request-Id: req-17495c4f-6cec-4f3e-914c-f7fb405ed1f7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 {} +{"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-98c7f317-ed15-4251-b7cb-f9493d22e9a4 +Openstack-Request-Id: req-aab8583b-d98c-4d74-9858-9fd322b06b1d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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/334937cb-ab9b-4e8d-a6ae-4f1ce847e152 -GET: /v1/allocations/334937cb-ab9b-4e8d-a6ae-4f1ce847e152 {} -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-93dd322c-90b2-419d-8789-3d2947c96a9f +Openstack-Request-Id: req-35ebc6f4-f280-4014-9593-27b0fed31512 X-Openstack-Ironic-Api-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 334937cb-ab9b-4e8d-a6ae-4f1ce847e152 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/allocations/e60e641b-ca93-4d96-9f12-f801f6df7de1 -GET: /v1/allocations/e60e641b-ca93-4d96-9f12-f801f6df7de1 {} -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-14447c10-4fc8-426d-bb1b-01063b11d93a +Openstack-Request-Id: req-bdc2fd5a-fc3b-49d3-9b78-4ca58ebf59c8 X-Openstack-Ironic-Api-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 e60e641b-ca93-4d96-9f12-f801f6df7de1 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/allocations/4d115f1a-c239-4a52-ad70-177bcf665ae7 -GET: /v1/allocations/4d115f1a-c239-4a52-ad70-177bcf665ae7 {} -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-ef32be1f-1a25-49b0-a3f2-bdfe007b3ed4 +Openstack-Request-Id: req-9409a932-e67d-47fd-8bb3-7425a190b1e4 X-Openstack-Ironic-Api-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 4d115f1a-c239-4a52-ad70-177bcf665ae7 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/allocations/e254d933-2b0c-42d2-90ba-743463621f6a -PATCH: /v1/allocations/e254d933-2b0c-42d2-90ba-743463621f6a [{'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: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-1da092a5-7cd1-4cf9-aa40-43f10a473b8b +Openstack-Request-Id: req-f1edb32a-7cb6-4256-948e-a6d505014a1e X-Openstack-Ironic-Api-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 e254d933-2b0c-42d2-90ba-743463621f6a could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/allocations/c019bd3b-3253-4f83-b2af-359bb99ea86c -PATCH: /v1/allocations/c019bd3b-3253-4f83-b2af-359bb99ea86c [{'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: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-c8656c75-7230-4be9-b874-48e6b538e041 +Openstack-Request-Id: req-a9f92f52-fdb5-4a52-a0f7-96dd05d4800e X-Openstack-Ironic-Api-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 c019bd3b-3253-4f83-b2af-359bb99ea86c could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/allocations/7abd61f0-7e39-4e52-9ceb-b6c736e4ba58 -PATCH: /v1/allocations/7abd61f0-7e39-4e52-9ceb-b6c736e4ba58 [{'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: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-90711316-b65e-45e7-8f49-690549c34cae +Openstack-Request-Id: req-9f74c7a1-5493-4a07-8f02-5cb8da77698f X-Openstack-Ironic-Api-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 7abd61f0-7e39-4e52-9ceb-b6c736e4ba58 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/38b75337-1646-4dca-83c4-70e3c99f25a8 -DELETE: /v1/allocations/38b75337-1646-4dca-83c4-70e3c99f25a8 +{"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-ff1f59ef-a882-4a98-8e92-949f79130ca5 +Openstack-Request-Id: req-4ef0f29c-fcf5-441b-a7a8-7ee4a61600b9 X-Openstack-Ironic-Api-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 38b75337-1646-4dca-83c4-70e3c99f25a8 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/11b7f78a-3146-4fa3-83e3-032147ae31ca -DELETE: /v1/allocations/11b7f78a-3146-4fa3-83e3-032147ae31ca +{"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-85f05cba-efb1-42d3-9459-1bf6cba95a89 +Openstack-Request-Id: req-97502998-17b3-4a5b-bfa6-3eeee244d626 X-Openstack-Ironic-Api-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 11b7f78a-3146-4fa3-83e3-032147ae31ca could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/89deefa8-9488-4136-b28e-9f71c46d6a08 -DELETE: /v1/allocations/89deefa8-9488-4136-b28e-9f71c46d6a08 +{"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-ef89281f-d008-4ac0-95a9-19e23e39049a +Openstack-Request-Id: req-148851f3-56c8-43b9-b684-f5953db7b8e6 X-Openstack-Ironic-Api-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 89deefa8-9488-4136-b28e-9f71c46d6a08 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 {} +{"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-11865db1-99a7-46b5-ba93-521ca903a2f4 +Openstack-Request-Id: req-4e61c70f-e717-4058-812a-6f1d9fca56c6 X-Openstack-Ironic-Api-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 {} +{"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-c1689e69-1396-4d54-9735-804ca0cd5c16 +Openstack-Request-Id: req-53fb4459-c5d7-4a5d-95a1-b059a6bd8418 X-Openstack-Ironic-Api-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 {} +{"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_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.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_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.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.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_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.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_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.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.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.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.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.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.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 +API ACL Testing Path patch /v1/allocations/58684d2e-4698-4e26-a2f3-0f88b72ea333 +PATCH: /v1/allocations/58684d2e-4698-4e26-a2f3-0f88b72ea333 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d3eae0ca-e658-43ff-b0b2-350d10085aa9 +Openstack-Request-Id: req-74b99110-90ee-4139-8b64-5ec9f6054c40 X-Openstack-Ironic-Api-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/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation -DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation -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.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.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.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 -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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 58684d2e-4698-4e26-a2f3-0f88b72ea333 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ce3cbe3b-9f40-4d49-b421-4771a5d827b6 +Openstack-Request-Id: req-74b99110-90ee-4139-8b64-5ec9f6054c40 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"Allocation 58684d2e-4698-4e26-a2f3-0f88b72ea333 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/allocations/17c8a3f1-0abb-4c14-a7b6-6ea0b9fe0e15 +DELETE: /v1/allocations/17c8a3f1-0abb-4c14-a7b6-6ea0b9fe0e15 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ce3cbe3b-9f40-4d49-b421-4771a5d827b6 +Openstack-Request-Id: req-94a8c204-f423-4c30-86ff-7c7d358ad957 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 17c8a3f1-0abb-4c14-a7b6-6ea0b9fe0e15 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-852577c0-9a2c-4676-a6b6-55747924e0e8 +Openstack-Request-Id: req-94a8c204-f423-4c30-86ff-7c7d358ad957 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"Allocation 17c8a3f1-0abb-4c14-a7b6-6ea0b9fe0e15 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-852577c0-9a2c-4676-a6b6-55747924e0e8 +Openstack-Request-Id: req-b56e150b-e7d8-48e6-8ca2-5217c4eeb5a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/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 +{"uuid": "17651417-5f25-47cb-ba73-68dd92852c4b", "created_at": "2025-02-07T17:34:14.048790+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/17651417-5f25-47cb-ba73-68dd92852c4b", "rel": "self"}, {"href": "http://localhost/allocations/17651417-5f25-47cb-ba73-68dd92852c4b", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-981a7efb-0b09-420b-a48b-9823e44f312a +Openstack-Request-Id: req-b56e150b-e7d8-48e6-8ca2-5217c4eeb5a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"uuid": "17651417-5f25-47cb-ba73-68dd92852c4b", "created_at": "2025-02-07T17:34:14.048790+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/17651417-5f25-47cb-ba73-68dd92852c4b", "rel": "self"}, {"href": "http://localhost/allocations/17651417-5f25-47cb-ba73-68dd92852c4b", "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-981a7efb-0b09-420b-a48b-9823e44f312a +Openstack-Request-Id: req-a0a0dfb9-9177-4fbc-bb74-44c148ad8769 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/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 +{"uuid": "0b71be9f-f155-4523-a97f-0ce81ca94b9c", "created_at": "2025-02-07T17:34:14.126119+00:00", "updated_at": "2025-02-07T17:34:14.127799+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/0b71be9f-f155-4523-a97f-0ce81ca94b9c", "rel": "self"}, {"href": "http://localhost/allocations/0b71be9f-f155-4523-a97f-0ce81ca94b9c", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c17dad8a-0153-4832-aea6-785cd1473960 +Openstack-Request-Id: req-a0a0dfb9-9177-4fbc-bb74-44c148ad8769 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"uuid": "0b71be9f-f155-4523-a97f-0ce81ca94b9c", "created_at": "2025-02-07T17:34:14.126119+00:00", "updated_at": "2025-02-07T17:34:14.127799+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/0b71be9f-f155-4523-a97f-0ce81ca94b9c", "rel": "self"}, {"href": "http://localhost/allocations/0b71be9f-f155-4523-a97f-0ce81ca94b9c", "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-c17dad8a-0153-4832-aea6-785cd1473960 +Openstack-Request-Id: req-6a42fb10-0e05-41cd-b012-51527166b15e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test -DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test -GOT:Response: 403 Forbidden +{"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-7c8e7c3b-b56e-4c30-b92f-581609ab68cf +Openstack-Request-Id: req-6a42fb10-0e05-41cd-b012-51527166b15e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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-7c8e7c3b-b56e-4c30-b92f-581609ab68cf +Openstack-Request-Id: req-814e2213-ad6d-42e8-8fa1-ae167d8497d5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test -DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=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-04da3e1e-fb06-4818-8574-83660403c755 +Openstack-Request-Id: req-814e2213-ad6d-42e8-8fa1-ae167d8497d5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +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-04da3e1e-fb06-4818-8574-83660403c755 +Openstack-Request-Id: req-0ec2b9e1-efba-4929-850a-87995b484f0a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test -DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test -GOT:Response: 403 Forbidden +{"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.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.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.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.test_agent.TestAgentDeploy.test_write_image +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image ... 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.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.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.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.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_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.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_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.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.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_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.TestAgentDeploy.test_write_image_with_proxies +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_with_proxies ... 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_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.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.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_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.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_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.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.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.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.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_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_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_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file ... ok +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-408f27ed-a7d7-468f-9f48-0d09903e2729 +Openstack-Request-Id: req-0ec2b9e1-efba-4929-850a-87995b484f0a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} +API ACL Testing Path delete /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation +DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-408f27ed-a7d7-468f-9f48-0d09903e2729 +Openstack-Request-Id: req-57f5fd30-7733-4224-ab97-f30daa8bfe36 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test -DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=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-27666204-e12e-4cd6-95d6-7197a586e371 +Openstack-Request-Id: req-57f5fd30-7733-4224-ab97-f30daa8bfe36 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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_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.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 -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation +DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7eac3c3d-cb3d-4488-bcce-3f15012effff +Openstack-Request-Id: req-0e858143-d054-454f-b9a5-d089e4da9c2c X-Openstack-Ironic-Api-Maximum-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 -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-6781eb58-fe2f-48bd-9abb-b964d67c2883 +Openstack-Request-Id: req-0e858143-d054-454f-b9a5-d089e4da9c2c X-Openstack-Ironic-Api-Maximum-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\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation +DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a8f2c4f4-6ddc-44e8-a79b-a1bb71830430 +Openstack-Request-Id: req-f9495610-8f9f-423a-ab83-d1811f7059ad X-Openstack-Ironic-Api-Maximum-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 post /v1/deploy_templates -POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} -GOT:Response: 500 Internal Server Error +{"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-24b8ca5b-71ac-4f37-8880-a2e823c440a8 +Openstack-Request-Id: req-f9495610-8f9f-423a-ab83-d1811f7059ad X-Openstack-Ironic-Api-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 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\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/deploy_templates +GET: /v1/deploy_templates {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-59a08e85-0414-4037-b258-f255a0cee022 +Openstack-Request-Id: req-dfeb18ea-f16e-4dbe-bfba-c2103ee8e4af X-Openstack-Ironic-Api-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 post /v1/deploy_templates -POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} -GOT:Response: 500 Internal Server Error +{"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-a5756b21-80be-4545-bee5-e97ebeae6175 +Openstack-Request-Id: req-dfeb18ea-f16e-4dbe-bfba-c2103ee8e4af X-Openstack-Ironic-Api-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}"} +{"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 GET: /v1/deploy_templates {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-bc1f50e7-e17a-42b3-b38c-3287545c965e +Openstack-Request-Id: req-9707dfc1-badb-4f7e-8fef-46cdafd2e7d5 X-Openstack-Ironic-Api-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 -GET: /v1/deploy_templates {} -GOT:Response: 500 Internal Server Error +ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-bedb5146-9bdc-419f-99ee-31caef51a1ab +Openstack-Request-Id: req-9707dfc1-badb-4f7e-8fef-46cdafd2e7d5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -48249,5536 +48353,6218 @@ GET: /v1/deploy_templates {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-e449428b-9134-4477-bbc7-9b6379165a74 +Openstack-Request-Id: req-d5e6ae21-a053-4e64-97f2-509763266ff2 X-Openstack-Ironic-Api-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/117d2d49-58a8-4ca0-9df8-862a5d1b01cf -GET: /v1/deploy_templates/117d2d49-58a8-4ca0-9df8-862a5d1b01cf {} -GOT:Response: 500 Internal Server Error +ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-b26a93aa-4045-4281-be2d-7c74b2f355b5 +Openstack-Request-Id: req-d5e6ae21-a053-4e64-97f2-509763266ff2 X-Openstack-Ironic-Api-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/3e56ad72-8cad-4f19-b29b-47428ff99207 -GET: /v1/deploy_templates/3e56ad72-8cad-4f19-b29b-47428ff99207 {} +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: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-0afd59bc-352b-4ab3-8e84-23e629c92347 +Openstack-Request-Id: req-c739c70a-2e07-4948-924b-993b89f91e44 X-Openstack-Ironic-Api-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/bfb7c0a4-6cf2-42e2-80a1-69e5704c59a4 -GET: /v1/deploy_templates/bfb7c0a4-6cf2-42e2-80a1-69e5704c59a4 {} -GOT:Response: 500 Internal Server Error +{"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-bcc9ee30-da5b-4035-aff8-0190313e0d15 +Openstack-Request-Id: req-c739c70a-2e07-4948-924b-993b89f91e44 X-Openstack-Ironic-Api-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/487ca107-504f-4054-b42d-4016c99cd72f -PATCH: /v1/deploy_templates/487ca107-504f-4054-b42d-4016c99cd72f [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] -GOT:Response: 500 Internal Server Error +{"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.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.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.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.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_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.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.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.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.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.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.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.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.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.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 +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-b169b3e0-1df8-42a8-830b-55589cf48b16 +Openstack-Request-Id: req-37387d0e-4ec0-4919-8f74-6b1b70b819f2 X-Openstack-Ironic-Api-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/7cc61de4-dcc0-45ef-9bd7-8e52826671d8 -PATCH: /v1/deploy_templates/7cc61de4-dcc0-45ef-9bd7-8e52826671d8 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] -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.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.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.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.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 -ACL Test 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-27666204-e12e-4cd6-95d6-7197a586e371 +Openstack-Request-Id: req-e41b79fd-7c99-4052-8387-25739375d8aa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test -DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test -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-ae02ea91-3014-4df1-ac74-ae8ef141f274 +Openstack-Request-Id: req-934d6327-789a-4863-ae26-6dbc611eaa18 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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-ae02ea91-3014-4df1-ac74-ae8ef141f274 +Openstack-Request-Id: req-3b4ba7df-5440-44a8-aa57-0ba7267a4eb3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test -DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test +{"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-0488dcee-8bad-4f1b-bd06-77782a09d1b1 +Openstack-Request-Id: req-99e27c09-aee4-4878-b674-a0bc9faae312 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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 Content-Type: application/json -Openstack-Request-Id: req-0488dcee-8bad-4f1b-bd06-77782a09d1b1 +Openstack-Request-Id: req-1dbbfb20-6047-48be-88fa-ed674f8b3797 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test -DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test +{"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 Content-Type: application/json -Openstack-Request-Id: req-b407cf0b-c2a2-4f38-a322-428e6ab37903 +Openstack-Request-Id: req-cd6b3c16-1d66-4368-968b-8b95a71b3768 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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 Content-Type: application/json -Openstack-Request-Id: req-b407cf0b-c2a2-4f38-a322-428e6ab37903 +Openstack-Request-Id: req-7b87e4b9-6d9f-4b6a-afbb-e88c1b786c28 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test -DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test +{"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-ee13816c-6cba-4d1d-97d3-938b5f8eb18b +Openstack-Request-Id: req-eb4f6c8f-f9e2-4c21-9712-bea90583657a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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-ee13816c-6cba-4d1d-97d3-938b5f8eb18b +Openstack-Request-Id: req-2d0a8e4a-9853-432a-a725-70677c9373e0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/traits -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits {} -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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-83326240-0320-4f70-9aa2-76fc18dc0676 +Openstack-Request-Id: req-cbfcf482-6804-4193-88ed-7fc2d1a25e7e 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 +{"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-83326240-0320-4f70-9aa2-76fc18dc0676 +Openstack-Request-Id: req-90bf849e-6b2f-47f9-a7e3-d4315a4ea04f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"traits": []} -API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits {} -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/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-cd9b282a-b3de-4558-8f61-43ff2485bee7 +Openstack-Request-Id: req-4cc90a75-53d9-4214-a26b-0f27970127a2 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 +{"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-cd9b282a-b3de-4558-8f61-43ff2485bee7 +Openstack-Request-Id: req-e3cc0549-65cc-480f-a928-c1135924c529 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"traits": []} -API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits {} -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'}}] +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.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.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 +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-2391cb63-6665-430d-aa74-0b30701008e5 +Openstack-Request-Id: req-78e82b3f-0112-416c-8e67-e1c26bc1a0bb X-Openstack-Ironic-Api-Maximum-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\": \"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-2391cb63-6665-430d-aa74-0b30701008e5 +Openstack-Request-Id: req-78e82b3f-0112-416c-8e67-e1c26bc1a0bb X-Openstack-Ironic-Api-Maximum-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 put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} -GOT:Response: 503 Service Unavailable +{"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-cdcc4d7d-c723-437d-87ec-375a402b36b8 +Openstack-Request-Id: req-1a3590d4-2008-4fc6-951c-9a9a245fb1a3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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: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-cdcc4d7d-c723-437d-87ec-375a402b36b8 +Openstack-Request-Id: req-1a3590d4-2008-4fc6-951c-9a9a245fb1a3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/traits -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.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.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.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.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.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.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.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.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.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.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.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.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.conductor.test_periodics.NodePeriodicTestCase.test_simple -ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_simple ... 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.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.conductor.test_periodics.NodePeriodicTestCase.test_stop -ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_stop ... 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.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.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 -GOT:Response: 503 Service Unavailable +{"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-bd3237b6-182b-409e-8ff1-2bde9d5eb7f0 +Openstack-Request-Id: req-0a6503c8-2290-4d3f-a9d7-b2788b8e2219 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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: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-bd3237b6-182b-409e-8ff1-2bde9d5eb7f0 +Openstack-Request-Id: req-0a6503c8-2290-4d3f-a9d7-b2788b8e2219 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/traits -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} -GOT:Response: 403 Forbidden +{"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 post /v1/chassis +POST: /v1/chassis {'description': 'test-chassis'} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-e6f9d47a-c035-45da-9db6-97c33cafc268 +Openstack-Request-Id: req-bcb55f16-9c94-43eb-8dd5-ebbf8f58841e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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-e6f9d47a-c035-45da-9db6-97c33cafc268 +Openstack-Request-Id: req-bcb55f16-9c94-43eb-8dd5-ebbf8f58841e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} -GOT:Response: 403 Forbidden +{"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/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-c6ec6759-8582-4210-8022-ea597ef607f8 +Openstack-Request-Id: req-be65b0c0-c975-4bcc-b3a4-b3fb726cd1c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"history": [{"uuid": "90e07576-0ce7-401d-a950-d655f750280c", "created_at": "2025-02-07T17:34:15.071244+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/90e07576-0ce7-401d-a950-d655f750280c", "rel": "self"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c6ec6759-8582-4210-8022-ea597ef607f8 +Openstack-Request-Id: req-be65b0c0-c975-4bcc-b3a4-b3fb726cd1c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} -GOT:Response: 403 Forbidden +{"history": [{"uuid": "90e07576-0ce7-401d-a950-d655f750280c", "created_at": "2025-02-07T17:34:15.071244+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/90e07576-0ce7-401d-a950-d655f750280c", "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-c2cf6082-9055-46b6-9b8e-2e83f4590624 +Openstack-Request-Id: req-c93f665f-e0fa-41a7-aabf-19c01f61269e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"history": [{"uuid": "dfc62985-93f7-4ad1-904d-7b1a85bf546e", "created_at": "2025-02-07T17:34:15.136666+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/dfc62985-93f7-4ad1-904d-7b1a85bf546e", "rel": "self"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c2cf6082-9055-46b6-9b8e-2e83f4590624 +Openstack-Request-Id: req-c93f665f-e0fa-41a7-aabf-19c01f61269e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} -GOT:Response: 403 Forbidden +{"history": [{"uuid": "dfc62985-93f7-4ad1-904d-7b1a85bf546e", "created_at": "2025-02-07T17:34:15.136666+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/dfc62985-93f7-4ad1-904d-7b1a85bf546e", "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-d0f7b942-9796-42f0-aa50-d18797c628e7 +Openstack-Request-Id: req-7f9fa053-971e-448b-845c-c580ae8fcd7f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"history": [{"uuid": "3b038245-6308-409d-8ea9-bdaa6a0a22bc", "created_at": "2025-02-07T17:34:15.202056+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/3b038245-6308-409d-8ea9-bdaa6a0a22bc", "rel": "self"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d0f7b942-9796-42f0-aa50-d18797c628e7 +Openstack-Request-Id: req-7f9fa053-971e-448b-845c-c580ae8fcd7f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} +{"history": [{"uuid": "3b038245-6308-409d-8ea9-bdaa6a0a22bc", "created_at": "2025-02-07T17:34:15.202056+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/3b038245-6308-409d-8ea9-bdaa6a0a22bc", "rel": "self"}]}]} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/210e2501-2a1d-4463-9c16-bcb1301aa28a +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/210e2501-2a1d-4463-9c16-bcb1301aa28a {} +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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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_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.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.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.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.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.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_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.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.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 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2b79d6fb-069c-4e00-be89-e8e9e50e1882 +Openstack-Request-Id: req-37ab390c-9dc2-44c7-ac9f-4f4df4b08f1a X-Openstack-Ironic-Api-Maximum-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}"} +{"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-2b79d6fb-069c-4e00-be89-e8e9e50e1882 +Openstack-Request-Id: req-37ab390c-9dc2-44c7-ac9f-4f4df4b08f1a X-Openstack-Ironic-Api-Maximum-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 delete /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits/CUSTOM_MEOW -DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits/CUSTOM_MEOW -GOT:Response: 503 Service Unavailable +{"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/9630d4bb-afcb-4426-a43f-61e9ecb0341e +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/9630d4bb-afcb-4426-a43f-61e9ecb0341e {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e29dfa02-5402-432a-aa89-79aa678680d8 +Openstack-Request-Id: req-fc5aa898-3b82-421e-8daf-83f59c25b506 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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": "9630d4bb-afcb-4426-a43f-61e9ecb0341e", "created_at": "2025-02-07T17:34:15.330235+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/9630d4bb-afcb-4426-a43f-61e9ecb0341e", "rel": "self"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e29dfa02-5402-432a-aa89-79aa678680d8 +Openstack-Request-Id: req-fc5aa898-3b82-421e-8daf-83f59c25b506 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 -GOT:Response: 503 Service Unavailable +{"uuid": "9630d4bb-afcb-4426-a43f-61e9ecb0341e", "created_at": "2025-02-07T17:34:15.330235+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/9630d4bb-afcb-4426-a43f-61e9ecb0341e", "rel": "self"}]} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/d51606bd-e1b0-4e8a-9a3e-5e3785799853 +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/d51606bd-e1b0-4e8a-9a3e-5e3785799853 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4d2edb8c-866b-429b-99d3-4b6e10f7b76e +Openstack-Request-Id: req-21ac5cbc-b05f-4c3c-8cad-7dbe1c0c84b0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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": "d51606bd-e1b0-4e8a-9a3e-5e3785799853", "created_at": "2025-02-07T17:34:15.396377+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/d51606bd-e1b0-4e8a-9a3e-5e3785799853", "rel": "self"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4d2edb8c-866b-429b-99d3-4b6e10f7b76e +Openstack-Request-Id: req-21ac5cbc-b05f-4c3c-8cad-7dbe1c0c84b0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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.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.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.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.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.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: 500 Internal Server Error +{"uuid": "d51606bd-e1b0-4e8a-9a3e-5e3785799853", "created_at": "2025-02-07T17:34:15.396377+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/d51606bd-e1b0-4e8a-9a3e-5e3785799853", "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-1e29e04d-0a85-4997-8e23-368aa95e06f1 +Openstack-Request-Id: req-2fc11aa1-685e-4177-b93e-273fd6b76675 X-Openstack-Ironic-Api-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/abe3b85e-50be-47f5-ab77-d0048a3f0e20 -PATCH: /v1/deploy_templates/abe3b85e-50be-47f5-ab77-d0048a3f0e20 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] -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-eba27a5c-8f9a-4372-85d9-559803fa6ea2 +Openstack-Request-Id: req-2fc11aa1-685e-4177-b93e-273fd6b76675 X-Openstack-Ironic-Api-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/9a6e86ab-a32d-45bd-bde0-418345ee0ef5 -DELETE: /v1/deploy_templates/9a6e86ab-a32d-45bd-bde0-418345ee0ef5 -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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-20f2c775-2bfa-474f-a53e-71d6db44f0bf +Openstack-Request-Id: req-ae2b852b-11bb-4038-b1d3-7c988ff373f5 X-Openstack-Ironic-Api-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/cb9d115c-8b18-426a-8cff-cf68a8b70514 -DELETE: /v1/deploy_templates/cb9d115c-8b18-426a-8cff-cf68a8b70514 -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-58a9401d-270f-487b-9371-5dbcfd98dcad +Openstack-Request-Id: req-ae2b852b-11bb-4038-b1d3-7c988ff373f5 X-Openstack-Ironic-Api-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/1284459d-623c-4a44-9f36-6a16088bf1f1 -DELETE: /v1/deploy_templates/1284459d-623c-4a44-9f36-6a16088bf1f1 -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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7f7ce4c9-b9bb-4337-992b-d97e6f9fc6d6 +Openstack-Request-Id: req-fcde5f3b-40d8-4de3-96c7-13e8144fc57f X-Openstack-Ironic-Api-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 +{"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-f4276b20-093f-445d-a008-065a02060a0f +Openstack-Request-Id: req-fcde5f3b-40d8-4de3-96c7-13e8144fc57f X-Openstack-Ironic-Api-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 +{"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/59aec0a5-4dcb-4ee6-8f30-9757c9182d72 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/59aec0a5-4dcb-4ee6-8f30-9757c9182d72 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ba5c7229-39af-4d1a-930b-897101d34503 +Openstack-Request-Id: req-41e27398-b58f-4ede-a501-cd401771a43e X-Openstack-Ironic-Api-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 +{"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-20b4d933-4ab7-442e-a0e5-6782191b1c56 +Openstack-Request-Id: req-41e27398-b58f-4ede-a501-cd401771a43e X-Openstack-Ironic-Api-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 +{"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/567a2768-4227-4e09-bef2-a18756a9a162 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/567a2768-4227-4e09-bef2-a18756a9a162 {} +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_console_utils.ConsoleUtilsTestCase.test_allocate_port_success +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_success ... 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.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.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.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.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_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.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.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.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.common.test_args.ValidateDecoratorTest.test_and +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_and ... 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.common.test_args.ValidateDecoratorTest.test_boolean +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_boolean ... 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.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.common.test_args.ValidateDecoratorTest.test_decorated_args_kwargs +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args_kwargs ... 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.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.common.test_args.ValidateDecoratorTest.test_decorated_kwargs +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_kwargs ... ok +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_integer +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_integer ... ok +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-df156dfa-ee1b-4e75-bddc-6c51ee92b672 +Openstack-Request-Id: req-dbd40442-20d2-4b2e-8b92-3a49f372f77f X-Openstack-Ironic-Api-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 +{"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-75fb4152-2c74-451f-aa5b-03ee37360d0b +Openstack-Request-Id: req-e1190b23-0ce5-4e00-a476-5967a5e75930 X-Openstack-Ironic-Api-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 +{"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-4f6c7a59-6918-40df-9f1b-dba8970c7b5a +Openstack-Request-Id: req-422fa665-d6df-40e5-bc03-39ce427983f3 X-Openstack-Ironic-Api-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 +{"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-f9329d5d-8f19-4443-8cb3-4d49a8765a99 +Openstack-Request-Id: req-efd0f168-3088-45cf-8762-9d334dc48439 X-Openstack-Ironic-Api-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 +{"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-b94fb47f-101b-4d53-86c4-d4e61e53cc8a +Openstack-Request-Id: req-1f60811f-9b86-4e17-8588-7dace33da300 X-Openstack-Ironic-Api-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 {} -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.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_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_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_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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps ... 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 +{"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-70c41f3d-0c2a-4b65-89df-ac4e38f1f631 +Openstack-Request-Id: req-b4c6a6ec-3ac6-477d-82db-674676a25557 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-70c41f3d-0c2a-4b65-89df-ac4e38f1f631 +Openstack-Request-Id: req-e793cddc-c8b8-4896-a710-76aef8653d2e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 delete /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_MEOW -DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_MEOW +{"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-a7e0064d-6007-4744-90c9-9f9871c1f4f5 +Openstack-Request-Id: req-9375127e-95c4-4a1a-b572-3654a4152a0a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-a7e0064d-6007-4744-90c9-9f9871c1f4f5 +Openstack-Request-Id: req-768013aa-28e3-4837-b4d1-74092049cdd7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 delete /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_MEOW -DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_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/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-f4697d65-3cc6-44f6-9338-95f0564ad79c +Openstack-Request-Id: req-fa77fe8b-3a82-45d4-aea7-a48f94307cbc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-f4697d65-3cc6-44f6-9338-95f0564ad79c +Openstack-Request-Id: req-e874ad4d-e07f-4201-b4a6-66fee9b43745 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 delete /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_MEOW -DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_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/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-044fde0e-f13c-4738-abd5-258d48ab96d7 +Openstack-Request-Id: req-835237f7-597c-4f28-afc4-708b4c4e205a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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-044fde0e-f13c-4738-abd5-258d48ab96d7 +Openstack-Request-Id: req-a80e45f5-a209-4e5b-9a5b-c43cc204917a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 delete /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_MEOW -DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_MEOW +{"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-13e65cd6-ff1f-4012-971a-f5ca3627e6f7 +Openstack-Request-Id: req-8ff31e2f-7712-4465-9dde-622b437558c4 X-Openstack-Ironic-Api-Maximum-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\": \"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_rbac_legacy_208_drivers_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_208_drivers_get_admin ... 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.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.common.test_args.ValidateDecoratorTest.test_mandatory +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mandatory ... 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.common.test_args.ValidateDecoratorTest.test_mixed_unvalidated +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mixed_unvalidated ... 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.common.test_args.ValidateDecoratorTest.test_name +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_name ... ok +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_or +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_or ... 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.common.test_args.ValidateDecoratorTest.test_string +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string ... 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.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.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.common.test_args.ValidateDecoratorTest.test_unexpected_args +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_unexpected_args ... ok +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid ... 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.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_args.ValidateTypesTest.test_types +ironic.tests.unit.common.test_args.ValidateTypesTest.test_types ... 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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot +ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot ... 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.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.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_exception +ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_exception ... 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.TestStorageInterfaceUtils.test_is_iscsi_boot_false +ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false ... 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_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.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.TestStorageInterfaceUtils.test_is_iscsi_boot_false_fc_target +ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false_fc_target ... 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.common.test_keystone.KeystoneTestCase.test_get_auth +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth ... 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.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_error +ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_error ... 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.common.test_keystone.KeystoneTestCase.test_get_service_auth +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_service_auth ... 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.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_fc +ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_fc ... ok +ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ +ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ ... 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.common.test_swift.SwiftTestCase.test_create_object +ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_iscsi +ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_iscsi ... 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.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.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.test_image_utils.RedfishImageUtilsTestCase.test__find_param +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param ... ok +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-13e65cd6-ff1f-4012-971a-f5ca3627e6f7 +Openstack-Request-Id: req-9d8befd1-ec32-4b21-98d0-6dd3a4a77a2e X-Openstack-Ironic-Api-Maximum-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 put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits/CUSTOM_TRAIT2 -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits/CUSTOM_TRAIT2 None -GOT:Response: 503 Service Unavailable +{"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-9b4a1166-d036-46ca-8bb4-61c824f3e529 +Openstack-Request-Id: req-196a38b4-3530-41e9-a35e-88e6bdfaa2fd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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: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-9b4a1166-d036-46ca-8bb4-61c824f3e529 +Openstack-Request-Id: req-c01b24ae-e02e-4377-8063-76250e17a91d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/traits/CUSTOM_TRAIT2 -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits/CUSTOM_TRAIT2 None -GOT:Response: 503 Service Unavailable +{"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-c45de74f-b95b-49cd-97f7-e704e0441b6e +Openstack-Request-Id: req-bbcfe8b7-f729-4b8e-b68a-330b474a5775 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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: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-c45de74f-b95b-49cd-97f7-e704e0441b6e +Openstack-Request-Id: req-0683f654-2d21-4be7-b9bc-55bb861cda56 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/traits/CUSTOM_TRAIT2 -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits/CUSTOM_TRAIT2 None -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-cc0ab3cf-8c1c-48ea-97d6-d83ff31f2335 +Openstack-Request-Id: req-c92e0051-b42d-4a44-9b7d-404a7e9b136b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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-cc0ab3cf-8c1c-48ea-97d6-d83ff31f2335 +Openstack-Request-Id: req-8d8d5827-353c-495b-bc55-f7cf31fcf2fd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_TRAIT2 -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.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.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.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.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates ... 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.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.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.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.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.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.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.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.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 -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.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.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.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.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_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_invalid_arg -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_invalid_arg ... ok +{"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-1f5304f6-d784-43c9-a26e-be4d2191e3d4 +Openstack-Request-Id: req-6606df1b-4794-4b92-8163-79bfb47a8121 X-Openstack-Ironic-Api-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 {} +{"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-dfa2b6df-ba9a-4249-a6cc-2e2eb5732d21 +Openstack-Request-Id: req-cac11082-84d5-4eba-ad20-6caf66b27965 X-Openstack-Ironic-Api-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 {} +{"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-7955167d-f4d6-400a-a3da-52c61d910409 +Openstack-Request-Id: req-6e4ffa2c-0150-4800-8bb3-b1c208962d5e X-Openstack-Ironic-Api-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 {} +{"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-9ae24b04-f0a5-4fcd-85f1-193b58fbb846 +Openstack-Request-Id: req-b1b29b38-d9e1-4ac3-a45b-ebc6b015df36 X-Openstack-Ironic-Api-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'}] +{"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-bce6d226-39fa-457a-a7e9-e8885b67fc03 +X-Openstack-Ironic-Api-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 +Content-Type: application/json +Openstack-Request-Id: req-e6b82798-629f-475b-abe3-b5bf7fdf2488 +X-Openstack-Ironic-Api-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.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.common.test_swift.SwiftTestCase.test_delete_object +ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object ... 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.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.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.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_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.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.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.common.test_swift.SwiftTestCase.test_get_temp_url +ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url ... 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.common.test_swift.SwiftTestCase.test_head_object +ironic.tests.unit.common.test_swift.SwiftTestCase.test_head_object ... 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.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.common.test_swift.SwiftTestCase.test_update_object_meta +ironic.tests.unit.common.test_swift.SwiftTestCase.test_update_object_meta ... 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.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.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.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.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.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_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.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.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.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.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port ... 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.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.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.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.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.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.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_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.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_manager.BootDeviceTestCase.test_get_supported_boot_devices +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices ... 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_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.conductor.test_manager.BootDeviceTestCase.test_set_boot_device +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device ... 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.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.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.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.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.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.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_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.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup +ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup ... 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.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.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.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.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.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.conductor.test_manager.IndicatorsTestCase.test_get_supported_indicators +ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_supported_indicators ... 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.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.conductor.test_manager.IndicatorsTestCase.test_set_indicator_state +ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_set_indicator_state ... 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_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso ... 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.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.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.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_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_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image ... 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.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_rpcapi.RPCAPITestCase.test_can_send_rescue_true +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_true ... 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.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.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.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.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_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_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.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.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean ... 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.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy ... 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 GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-41999676-1053-4bfe-9b76-ee5c72be9895 +Openstack-Request-Id: req-e8e7df2f-ab94-474a-b932-d6350cdce818 X-Openstack-Ironic-Api-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'}] +{"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 {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-cb5f9bae-c923-4b6d-83a8-7cc1c2deabfb +Openstack-Request-Id: req-7320ff41-0dbc-4485-a8b6-69e3b768a304 X-Openstack-Ironic-Api-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'}] +{"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 +GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-de2fc5a2-e474-47c6-bbce-587b0598fafc +Openstack-Request-Id: req-f8ed3832-8d43-433f-bccc-892e8b85ad45 X-Openstack-Ironic-Api-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 +{"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 +GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-2c9aba6b-4c4f-4ef5-8901-c3c1373aa4c3 +Openstack-Request-Id: req-b8be5573-38e6-4c19-9a87-e3e98e6eb465 X-Openstack-Ironic-Api-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 +{"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 +GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-e2ab7e54-51eb-4fb4-b8af-58b00b97e616 +Openstack-Request-Id: req-4f488c1b-3421-4e37-9ef6-a00382aa2f37 X-Openstack-Ironic-Api-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 +{"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 post /v1/drivers/fake-driverz/vendor_passthru?method=test +POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-3d53eca7-abab-4e3c-ac29-b2ff34b66f16 -X-Openstack-Ironic-Api-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 -Content-Type: application/json -Openstack-Request-Id: req-90a0660f-d623-4ca6-a45e-f4b661e215fe -X-Openstack-Ironic-Api-Maximum-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 -Content-Type: application/json -Openstack-Request-Id: req-9aa36f26-b75e-4c57-9da8-612643b8d290 -X-Openstack-Ironic-Api-Maximum-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 -Content-Type: application/json -Openstack-Request-Id: req-6dffb0a7-0222-4352-bab2-a35e9a1dd627 -X-Openstack-Ironic-Api-Maximum-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/9ca15e8b-c568-4900-8015-91c1e7c0f887 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/9ca15e8b-c568-4900-8015-91c1e7c0f887 {} -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.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.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.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 -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.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.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.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.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_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.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_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_middleware.TestCORSMiddleware.test_valid_cors_get_request -ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request ... 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.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps ... ok -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-615250f3-ba53-43f1-80d7-0ddbc28ad4b8 +Openstack-Request-Id: req-add101f2-140c-4459-8387-49be95f85ed2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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 post /v1/drivers/fake-driverz/vendor_passthru?method=test +POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-615250f3-ba53-43f1-80d7-0ddbc28ad4b8 +Openstack-Request-Id: req-a332516d-0302-4b82-899d-54aa30228cd2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_TRAIT2 -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_TRAIT2 None -GOT:Response: 403 Forbidden +{"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 post /v1/drivers/fake-driverz/vendor_passthru?method=test +POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-c2fc1479-b116-4326-9e9b-196c0cffddb1 +Openstack-Request-Id: req-73253920-f2fa-46a9-b2ec-554436b1e68e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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 put /v1/drivers/fake-driverz/vendor_passthru?method=test +PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-c2fc1479-b116-4326-9e9b-196c0cffddb1 +Openstack-Request-Id: req-2869789c-8e82-49f0-954e-daadadea6e82 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_TRAIT2 -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_TRAIT2 None -GOT:Response: 403 Forbidden +{"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 put /v1/drivers/fake-driverz/vendor_passthru?method=test +PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-554b8124-db12-415a-a453-c9715c45dc72 +Openstack-Request-Id: req-b8673d60-0fb6-4125-a789-1dfae9355e2c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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\": \"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 put /v1/drivers/fake-driverz/vendor_passthru?method=test +PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-554b8124-db12-415a-a453-c9715c45dc72 +Openstack-Request-Id: req-7cc5e309-21cb-4211-816f-d19df09fb7e4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_TRAIT2 -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_TRAIT2 None +{"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/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-931dccbd-1321-4412-aab6-dc54b38f772a -X-Openstack-Ironic-Api-Maximum-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-931dccbd-1321-4412-aab6-dc54b38f772a -X-Openstack-Ironic-Api-Maximum-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/vifs -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs {} -GOT:Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-0375194b-8d38-43ee-9b30-6993ced431e4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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-0375194b-8d38-43ee-9b30-6993ced431e4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-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/vifs -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs {} -GOT:Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-57923ff1-2bcc-453e-ae74-5ae5dd438043 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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-57923ff1-2bcc-453e-ae74-5ae5dd438043 +Openstack-Request-Id: req-63809b93-7754-439c-9508-5d784261f319 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/vifs -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs {} +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ee5deaaf-d331-49a5-bab0-a1da22fba112 +Openstack-Request-Id: req-66c18d4d-b0b7-42f5-96b9-a4a50386ec1b X-Openstack-Ironic-Api-Maximum-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-ee5deaaf-d331-49a5-bab0-a1da22fba112 -X-Openstack-Ironic-Api-Maximum-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 post /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs -POST: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} -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/bios +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} +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.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation ... 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.conductor.test_rpcapi.RPCAPITestCase.test_create_node +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_node ... ok +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.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.conductor.test_rpcapi.RPCAPITestCase.test_create_port +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port ... 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.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.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node ... 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_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.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.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_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image ... 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_rpcapi.RPCAPITestCase.test_do_node_clean +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean ... 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.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy ... 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.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_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.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue ... 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.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_rpcapi.RPCAPITestCase.test_do_node_unrescue +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue ... 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.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru ... 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.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device ... 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.conductor.test_rpcapi.RPCAPITestCase.test_get_conductor_for +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_conductor_for ... 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.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.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information ... 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_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.conductor.test_rpcapi.RPCAPITestCase.test_get_indicator_state +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_indicator_state ... 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.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_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_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_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.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.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_rpcapi.RPCAPITestCase.test_get_random_topic +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic ... 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.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.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.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 +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.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.test_inspector.CheckStatusTestCase.test_not_check_inspecting +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_check_inspecting ... 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.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_inspector.CheckStatusTestCase.test_not_finished +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_finished ... 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.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.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspecting +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspecting ... 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.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspector +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspector ... 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_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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat ... 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.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.test_inspector.CheckStatusTestCase.test_status_error_managed +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error_managed ... 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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware ... 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_rpcapi.RPCAPITestCase.test_local_call_expected_exception +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_expected_exception ... 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.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.test_inspector.CheckStatusTestCase.test_status_ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok ... 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.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.test_inspector.CheckStatusTestCase.test_status_ok_managed +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok_managed ... 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_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.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_rpcapi.RPCAPITestCase.test_local_cast +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast ... 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_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.conductor.test_rpcapi.RPCAPITestCase.test_local_cast_error +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast_error ... 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.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_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_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.conductor.test_rpcapi.RPCAPITestCase.test_object_action +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action ... ok +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a5664dd0-38d0-4e2e-af5b-4dd05766a4ed +Openstack-Request-Id: req-ab2f434c-285b-4fd3-8273-322d059b874a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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/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-a5664dd0-38d0-4e2e-af5b-4dd05766a4ed +Openstack-Request-Id: req-5913509e-7a4f-4149-bc13-a5a65a59bb95 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs -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 -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_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.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version -ironic.tests.unit.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version ... 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.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.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_template -ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_template ... 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_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_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.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_usersteps -ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_usersteps ... 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.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_ok -ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_ok ... 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.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_skip_missing -ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_skip_missing ... 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.common.test_neutron.TestUpdatePortAddress.test_update_port_address -ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address ... 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.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.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.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.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.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.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler ... 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.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.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.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.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.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.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_cleaning_error_handler_manual -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual ... 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.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.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.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.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.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.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 -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.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout ... 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.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc ... ok -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/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-4fcebe28-9a97-4b02-bd9d-ab28b7f498cc +Openstack-Request-Id: req-9dd61ff8-3c16-42d3-b5b8-dfb971421099 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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/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-4fcebe28-9a97-4b02-bd9d-ab28b7f498cc +Openstack-Request-Id: req-b33e6fc5-1f70-4159-8e8e-01be71dd0156 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs -POST: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} -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/conductors +GET: /v1/conductors {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-9dffd3d6-9663-4f71-9ae6-db8c8c6f781e +Openstack-Request-Id: req-94eb1211-852a-4050-af74-4ecd94ee63dc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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:conductor: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/conductors +GET: /v1/conductors {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-9dffd3d6-9663-4f71-9ae6-db8c8c6f781e +Openstack-Request-Id: req-0d0f8451-2410-4f42-9237-5e00aa1d9328 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs -POST: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} -GOT:Response: 503 Service Unavailable +{"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}"} +API ACL Testing Path get /v1/conductors +GET: /v1/conductors {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-1a72276c-065c-4e5c-8aa4-2b32daf6f28f +Openstack-Request-Id: req-50db2826-c238-4c74-bd4a-a54c2c051459 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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:conductor: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/conductors/test-conductor-node +GET: /v1/conductors/test-conductor-node {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-1a72276c-065c-4e5c-8aa4-2b32daf6f28f +Openstack-Request-Id: req-46fb63c9-fd9c-48ed-8460-3866a133f2c4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs -POST: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} -GOT:Response: 503 Service Unavailable +{"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}"} +API ACL Testing Path get /v1/conductors/test-conductor-node +GET: /v1/conductors/test-conductor-node {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-7ffca85f-33c4-49ba-b2b1-79682b3d131f +Openstack-Request-Id: req-622e0e50-11eb-42d6-87af-501d8b5c4fe7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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:conductor: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/conductors/test-conductor-node +GET: /v1/conductors/test-conductor-node {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-7ffca85f-33c4-49ba-b2b1-79682b3d131f +Openstack-Request-Id: req-bde1647c-90f0-435d-b6ea-a625d867d1f4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs -POST: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} +{"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}"} +API ACL Testing Path post /v1/allocations +POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3a4658ec-d9d5-482f-8c69-1904313e1ecf +Openstack-Request-Id: req-e947b27a-8cec-4489-9c83-8c22a86c447c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-3a4658ec-d9d5-482f-8c69-1904313e1ecf -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-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 post /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs -POST: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/allocations +POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3190d37b-63d9-49ed-b203-adfd756d3db2 +Openstack-Request-Id: req-401ba850-6a12-40fe-b69c-2945a0f02afc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3190d37b-63d9-49ed-b203-adfd756d3db2 +Openstack-Request-Id: req-79bf4776-2f54-4db3-9ccc-3d0a1eab6907 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 post /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs -POST: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} +{"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: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1d2bd1e8-2eea-488b-ac46-a5d43702bef2 +Openstack-Request-Id: req-8fae4b88-a95e-40ee-ab66-9749217fd10f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"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: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1d2bd1e8-2eea-488b-ac46-a5d43702bef2 +Openstack-Request-Id: req-a80c1135-2630-46ff-b42b-efd3c44bda6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 post /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs -POST: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/allocations/f0cd163e-4cbb-495d-a6f2-abe1a75d2c9c +GET: /v1/allocations/f0cd163e-4cbb-495d-a6f2-abe1a75d2c9c {} +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.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.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions ... 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.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.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_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_rpcapi.RPCAPITestCase.test_remove_node_traits +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits ... 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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_rpc_disabled +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_rpc_disabled ... 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_rpcapi.RPCAPITestCase.test_set_boot_device +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device ... 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_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.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.PXEValidateRescueTestCase.test_validate_rescue +ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue ... 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_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.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.conductor.test_rpcapi.RPCAPITestCase.test_update_node +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node ... 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.conductor.test_rpcapi.RPCAPITestCase.test_update_port +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port ... 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.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup ... 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.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector ... 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.SNMPDriverTestCase.test_get_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_off ... 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_rpcapi.RPCAPITestCase.test_validate_driver_interfaces +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces ... 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.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.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru ... 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.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_rpcapi.RPCAPITestCase.test_vif_detach +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach ... 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.SNMPDriverTestCase.test_get_properties +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties ... 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.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot ... 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.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.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error ... 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.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_steps.GetValidatedStepsFromTemplatesTestCase.test_ok +ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_ok ... 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.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.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_skip_missing +ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_skip_missing ... 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_snmp.SNMPDriverTestCase.test_set_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off ... 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.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_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.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.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_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.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.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_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_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.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.objects.test_objects.TestObjectSerializer.test__process_object_api +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_conductor +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_conductor ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-943dcca5-1b23-4874-b666-256b0685ee4f -X-Openstack-Ironic-Api-Maximum-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-943dcca5-1b23-4874-b666-256b0685ee4f -X-Openstack-Ironic-Api-Maximum-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.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.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.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.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.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.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.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.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.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.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.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.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.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler ... 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.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.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.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.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.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.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.common.test_rpc.TestUtils.test_get_sensors_notifier -ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier ... 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.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.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_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.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.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.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_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.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.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_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.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_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.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.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.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.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.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.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_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.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.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.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 -GOT:Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-6c0d2858-5740-4c65-984c-5b79a16d01f3 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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-6c0d2858-5740-4c65-984c-5b79a16d01f3 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-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/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 -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-ac88d149-a4e3-4902-b4aa-53f186481ebd +Openstack-Request-Id: req-f3a8501e-a6b7-4ba5-b0e2-844ec0a420d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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\": \"Allocation f0cd163e-4cbb-495d-a6f2-abe1a75d2c9c could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/allocations/9a41909b-fe43-4e0d-b128-4b8fc7fb66c7 +GET: /v1/allocations/9a41909b-fe43-4e0d-b128-4b8fc7fb66c7 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ac88d149-a4e3-4902-b4aa-53f186481ebd +Openstack-Request-Id: req-749f48dc-6d2f-47c3-8bb9-eb8ead6af5c2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 -DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 9a41909b-fe43-4e0d-b128-4b8fc7fb66c7 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/allocations/3c3ec3ff-6d12-4747-8958-81720e4031f5 +GET: /v1/allocations/3c3ec3ff-6d12-4747-8958-81720e4031f5 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d0a1d260-0cfd-4682-9613-a8f0d1ce263f +Openstack-Request-Id: req-c8f63ed8-9019-4e2b-8652-3d84c15cc723 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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\": \"Allocation 3c3ec3ff-6d12-4747-8958-81720e4031f5 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/allocations/7b17bc96-7fef-4de5-8157-1baba3fda926 +PATCH: /v1/allocations/7b17bc96-7fef-4de5-8157-1baba3fda926 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d0a1d260-0cfd-4682-9613-a8f0d1ce263f +Openstack-Request-Id: req-0aa2e6ff-0a30-4c8a-8bb8-294b54e61b51 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 -DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 7b17bc96-7fef-4de5-8157-1baba3fda926 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/allocations/b0a66816-4149-4906-b7f8-85516618916d +PATCH: /v1/allocations/b0a66816-4149-4906-b7f8-85516618916d [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d35602b2-2b39-4772-a2b4-d1d8c64f4bde +Openstack-Request-Id: req-086fca73-e431-409e-aec7-71807b26fe48 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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\": \"Allocation b0a66816-4149-4906-b7f8-85516618916d could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/allocations/0fda4c8d-a975-4f9f-ac65-27f461ba7b8d +PATCH: /v1/allocations/0fda4c8d-a975-4f9f-ac65-27f461ba7b8d [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d35602b2-2b39-4772-a2b4-d1d8c64f4bde +Openstack-Request-Id: req-4ed8a3ed-b093-437f-ab11-65583f2e422c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 -DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 0fda4c8d-a975-4f9f-ac65-27f461ba7b8d could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/allocations/251df4c9-8fed-493d-8424-80ac7d59d719 +DELETE: /v1/allocations/251df4c9-8fed-493d-8424-80ac7d59d719 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-42c47d68-31b9-4ff6-bebe-a4fe53d28295 +Openstack-Request-Id: req-06af806b-ba3c-4fd8-8158-2eae26eb0702 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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\": \"Allocation 251df4c9-8fed-493d-8424-80ac7d59d719 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/allocations/69aede83-576b-45d3-9547-adf99436d1e0 +DELETE: /v1/allocations/69aede83-576b-45d3-9547-adf99436d1e0 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-42c47d68-31b9-4ff6-bebe-a4fe53d28295 +Openstack-Request-Id: req-8fc5b055-319e-4955-bd6f-2c718adbb24d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 -DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 69aede83-576b-45d3-9547-adf99436d1e0 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/allocations/6440c16b-691d-4007-b273-bd9ec57a36ff +DELETE: /v1/allocations/6440c16b-691d-4007-b273-bd9ec57a36ff +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6bc0826f-1e7d-40f8-882f-96aeb107a3e4 +Openstack-Request-Id: req-88ffb26e-2265-4409-a343-91b1260f4c99 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 6440c16b-691d-4007-b273-bd9ec57a36ff 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-6bc0826f-1e7d-40f8-882f-96aeb107a3e4 +Openstack-Request-Id: req-bdf90e33-f7ef-48ae-b302-1751766d7de4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 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 +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-cfc35d4a-99f3-4adb-9600-ea40fdf24ba5 +Openstack-Request-Id: req-9647d724-7c9f-4bc7-84b3-d7504232c1e5 X-Openstack-Ironic-Api-Maximum-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 +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-cfc35d4a-99f3-4adb-9600-ea40fdf24ba5 +Openstack-Request-Id: req-c1b99b1a-e075-458b-909a-9c049626e25c X-Openstack-Ironic-Api-Maximum-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/management/indicators -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/indicators {} -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource 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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-19102201-c442-426c-b55f-15109cd0a2ed +Openstack-Request-Id: req-b4b66c6f-97c7-4bb8-b090-4c77a7a977ff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-19102201-c442-426c-b55f-15109cd0a2ed +Openstack-Request-Id: req-ae0a71a1-a095-4733-8e0b-5ab2ff55f81b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/indicators -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.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.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.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.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.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.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.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.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.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.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 +{"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 +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.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.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.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.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_267_deploy_templates_post_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_267_deploy_templates_post_admin ... 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.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.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.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.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.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.TestObjectSerializer.test_object_serialization +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization ... 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.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.TestObjectSerializer.test_serialize_entity_pinned_api +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api ... 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.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 +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.TestObjectSerializer.test_serialize_entity_unpinned_conductor +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_conductor ... 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.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.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 +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.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.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.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.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.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_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.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 -GOT:Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-70639ec6-9503-41b5-a0e3-7595d312442d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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-70639ec6-9503-41b5-a0e3-7595d312442d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-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 {} +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.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.db.sqlalchemy.test_models.TestGetClass.test_get_class +ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class ... 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.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.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.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.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.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.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.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.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.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.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.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list +ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list ... 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/tmpqazyoqfs/tmpuzxw0m_w' +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.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.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.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.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 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6c4c77eb-7de4-4af8-b456-bf240d05177d +Openstack-Request-Id: req-5b62dc0c-0478-4146-9b1a-3d8871ac24e2 X-Openstack-Ironic-Api-Maximum-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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"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: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-6c4c77eb-7de4-4af8-b456-bf240d05177d +Openstack-Request-Id: req-714d227b-8cd8-4899-8d79-2f0068bc5bd5 X-Openstack-Ironic-Api-Maximum-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\": \"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 post /v1/deploy_templates +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-07f01ec3-c1c9-4b6d-b707-73c58f5118bc +Openstack-Request-Id: req-7621bfd6-d63d-403f-ab71-5ed4c0d35fd0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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: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 post /v1/deploy_templates +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-07f01ec3-c1c9-4b6d-b707-73c58f5118bc +Openstack-Request-Id: req-de29f550-9508-41a9-b7e9-6cf40fe71af8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 -GOT:Response: 403 Forbidden +{"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/deploy_templates +GET: /v1/deploy_templates {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-ec0d74a0-632e-4da7-b2a6-ef983e2528d9 +Openstack-Request-Id: req-9f1f1cfb-db8a-4773-a5f9-0a95c79949d5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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}"} -ACL Test GOT Response: 403 Forbidden +{"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 +GET: /v1/deploy_templates {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-ec0d74a0-632e-4da7-b2a6-ef983e2528d9 +Openstack-Request-Id: req-d98ee48e-4e53-46bf-b372-d4932dc14178 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 -GOT:Response: 404 Not Found +{"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 +GET: /v1/deploy_templates {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-31803d45-c982-450a-b815-e76a20a004aa +Openstack-Request-Id: req-18dc69cd-41ae-4b68-a0e5-6d643da804d0 X-Openstack-Ironic-Api-Maximum-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\": \"\\\"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/7284fa15-85a5-4a35-88f9-5363bea3e0e3 +GET: /v1/deploy_templates/7284fa15-85a5-4a35-88f9-5363bea3e0e3 {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-31803d45-c982-450a-b815-e76a20a004aa +Openstack-Request-Id: req-e1148eec-c757-43c5-adad-1f30ea8c3aba X-Openstack-Ironic-Api-Maximum-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\": \"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/2f0bcc77-4046-4247-9fd3-db10d28848b8 +GET: /v1/deploy_templates/2f0bcc77-4046-4247-9fd3-db10d28848b8 {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-be37f337-e92f-4970-a577-b90e07c8e8f0 +Openstack-Request-Id: req-c0ddff44-4d0c-483d-9f6e-5eb98dda242d 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\": \"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/1e159053-99d7-4d68-8d21-795b3872a2e2 +GET: /v1/deploy_templates/1e159053-99d7-4d68-8d21-795b3872a2e2 {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-be37f337-e92f-4970-a577-b90e07c8e8f0 +Openstack-Request-Id: req-dc0203d7-7b35-4e5f-adf1-2dda6ecaea01 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 {} -GOT:Response: 200 OK +{"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/26b8ec56-ebcb-407d-bf5f-897bb0b1dafe +PATCH: /v1/deploy_templates/26b8ec56-ebcb-407d-bf5f-897bb0b1dafe [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-ea2c2de9-bde6-467c-97f2-f4dd064cb458 +Openstack-Request-Id: req-40019ce1-f66f-4c3b-a16d-29e958c17d8b 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\": \"\\\"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/3557a1c0-2449-476d-8130-4035f5913efc +PATCH: /v1/deploy_templates/3557a1c0-2449-476d-8130-4035f5913efc [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-ea2c2de9-bde6-467c-97f2-f4dd064cb458 +Openstack-Request-Id: req-09eef6d0-81e6-4843-a808-fcb2eec60b99 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.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.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.db.test_api.UpgradingTestCase.test_check_versions -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions ... 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.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.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.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.db.test_api.UpgradingTestCase.test_check_versions_conductor -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor ... 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.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.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 -GOT:Response: 200 OK +{"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/af623749-5eb9-401f-bd9b-4307f477c961 +PATCH: /v1/deploy_templates/af623749-5eb9-401f-bd9b-4307f477c961 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] +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.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.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.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.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.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.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.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.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.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.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.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.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 +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.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.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.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.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.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.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.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.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_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.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.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.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.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.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 +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-94982ba6-8ef5-4e31-8ff7-42c9ebb673df +Openstack-Request-Id: req-611d2b57-a317-4dfc-bf6c-8665f2183d62 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": []} -ACL Test GOT Response: 200 OK +{"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/a7bfae03-eb32-4957-8b0b-aa32c2b8f7a8 +DELETE: /v1/deploy_templates/a7bfae03-eb32-4957-8b0b-aa32c2b8f7a8 +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-94982ba6-8ef5-4e31-8ff7-42c9ebb673df +Openstack-Request-Id: req-0830847b-3cdd-45a9-829a-f43297c4d058 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 {} -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 delete /v1/deploy_templates/b54e24d4-bf09-4338-a2b2-0311318da5b9 +DELETE: /v1/deploy_templates/b54e24d4-bf09-4338-a2b2-0311318da5b9 +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-c72d6309-b18b-4f4d-a316-9c4a0b0c386d +Openstack-Request-Id: req-fdaac8bc-7bc3-4f7b-b12b-315289da0a00 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-06T10:57:55.639640+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 +{"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/369082b9-a3b5-4066-9eaa-a2a007e7cb20 +DELETE: /v1/deploy_templates/369082b9-a3b5-4066-9eaa-a2a007e7cb20 +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-c72d6309-b18b-4f4d-a316-9c4a0b0c386d +Openstack-Request-Id: req-84e3d63f-5f96-4b6f-b12d-10016bd234a8 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-06T10:57:55.639640+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 +{"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-b2f44ee9-1d43-49f6-9588-9304b95ed8a1 +Openstack-Request-Id: req-469e9a44-ce34-4d72-a90e-e468d1c0664c 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-06T10:57:55.728297+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\": \"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-b2f44ee9-1d43-49f6-9588-9304b95ed8a1 +Openstack-Request-Id: req-cdd2f35b-1cd4-48b3-aa6d-05c540bb1706 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-06T10:57:55.728297+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 +{"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-e7285b88-265b-4a40-8377-b0c3d5495259 +Openstack-Request-Id: req-c47ee120-a9b4-4853-bcd8-f1f072db5426 X-Openstack-Ironic-Api-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}"} -ACL Test GOT Response: 404 Not Found +{"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-e7285b88-265b-4a40-8377-b0c3d5495259 +Openstack-Request-Id: req-45536ead-755d-446c-b219-8b59797d476c X-Openstack-Ironic-Api-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\": \"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 -Location: http://localhost/v1/portgroups/a2299010-ccce-43fe-8088-02bc5c144613 -Openstack-Request-Id: req-6fd45145-acf9-419b-876a-ab82458bd9ba +Openstack-Request-Id: req-9cd29fd3-b15d-4eba-9be6-01193c2d32c9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "a2299010-ccce-43fe-8088-02bc5c144613", "created_at": "2024-01-06T10:57:55.903549+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/a2299010-ccce-43fe-8088-02bc5c144613", "rel": "self"}, {"href": "http://localhost/portgroups/a2299010-ccce-43fe-8088-02bc5c144613", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "ports": [{"href": "http://localhost/v1/portgroups/a2299010-ccce-43fe-8088-02bc5c144613/ports", "rel": "self"}, {"href": "http://localhost/portgroups/a2299010-ccce-43fe-8088-02bc5c144613/ports", "rel": "bookmark"}]} -ACL Test GOT Response: 201 Created +{"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 -Location: http://localhost/v1/portgroups/a2299010-ccce-43fe-8088-02bc5c144613 -Openstack-Request-Id: req-6fd45145-acf9-419b-876a-ab82458bd9ba +Openstack-Request-Id: req-5181600a-3316-48ab-abca-0812f5b73ca4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "a2299010-ccce-43fe-8088-02bc5c144613", "created_at": "2024-01-06T10:57:55.903549+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/a2299010-ccce-43fe-8088-02bc5c144613", "rel": "self"}, {"href": "http://localhost/portgroups/a2299010-ccce-43fe-8088-02bc5c144613", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "ports": [{"href": "http://localhost/v1/portgroups/a2299010-ccce-43fe-8088-02bc5c144613/ports", "rel": "self"}, {"href": "http://localhost/portgroups/a2299010-ccce-43fe-8088-02bc5c144613/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.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.db.test_api.UpgradingTestCase.test_check_versions_emptyDB -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB ... 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.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_deployments.DoNextDeployStepTestCase.test_continue_node_deploy -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy ... 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.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.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.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.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_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_deployments.DoNextDeployStepTestCase.test_continue_node_steps_validation -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_steps_validation ... 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.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_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_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_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.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.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.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.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.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.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.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 -GOT:Response: 201 Created +{"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 -Location: http://localhost/v1/portgroups/18148a0f-fe9e-410f-ac6c-e6c6d16fae91 -Openstack-Request-Id: req-9d121c04-3396-4a8e-abed-c215a96be79b +Openstack-Request-Id: req-5ef24164-0452-4518-83b9-6d2f82462071 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "18148a0f-fe9e-410f-ac6c-e6c6d16fae91", "created_at": "2024-01-06T10:57:55.983092+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/18148a0f-fe9e-410f-ac6c-e6c6d16fae91", "rel": "self"}, {"href": "http://localhost/portgroups/18148a0f-fe9e-410f-ac6c-e6c6d16fae91", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "ports": [{"href": "http://localhost/v1/portgroups/18148a0f-fe9e-410f-ac6c-e6c6d16fae91/ports", "rel": "self"}, {"href": "http://localhost/portgroups/18148a0f-fe9e-410f-ac6c-e6c6d16fae91/ports", "rel": "bookmark"}]} -ACL Test GOT Response: 201 Created +{"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 -Location: http://localhost/v1/portgroups/18148a0f-fe9e-410f-ac6c-e6c6d16fae91 -Openstack-Request-Id: req-9d121c04-3396-4a8e-abed-c215a96be79b +Openstack-Request-Id: req-ade86a23-4e06-48d4-92f0-00da1f5f5f08 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "18148a0f-fe9e-410f-ac6c-e6c6d16fae91", "created_at": "2024-01-06T10:57:55.983092+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/18148a0f-fe9e-410f-ac6c-e6c6d16fae91", "rel": "self"}, {"href": "http://localhost/portgroups/18148a0f-fe9e-410f-ac6c-e6c6d16fae91", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "ports": [{"href": "http://localhost/v1/portgroups/18148a0f-fe9e-410f-ac6c-e6c6d16fae91/ports", "rel": "self"}, {"href": "http://localhost/portgroups/18148a0f-fe9e-410f-ac6c-e6c6d16fae91/ports", "rel": "bookmark"}]} -API ACL Testing Path post /v1/portgroups -POST: /v1/portgroups {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'} -GOT:Response: 403 Forbidden +{"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-bd061043-277b-42db-a984-48bcbbe19ef0 +Openstack-Request-Id: req-48bff314-6828-472e-8dd8-21e49ebb3c2d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-bd061043-277b-42db-a984-48bcbbe19ef0 +Openstack-Request-Id: req-34255af0-bc72-4cb7-a972-f7b24ea6af56 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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_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.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.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.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.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.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.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.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.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.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.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.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.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.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_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_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.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.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.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_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.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.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.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.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.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.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.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.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_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 +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-368e912e-2079-4a65-9dfd-acb6ba7c8c5a +Openstack-Request-Id: req-4151ba61-329e-4431-aefe-96d7398f5d7f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-368e912e-2079-4a65-9dfd-acb6ba7c8c5a +Openstack-Request-Id: req-722051c5-5601-48e7-bde5-7fb8b1f68d44 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-d84f5839-273b-4c53-8517-ea41f1e03034 +Openstack-Request-Id: req-85efd6c9-b7ba-4a3c-8ec5-d4e51e99427c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-d84f5839-273b-4c53-8517-ea41f1e03034 +Openstack-Request-Id: req-b4c77e97-89f8-4a6c-b964-85e793c62203 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-ce3a682d-975a-4d0e-852b-f61117d8290c +Openstack-Request-Id: req-bd5ff11b-aec1-47f5-be45-5fe460961dbb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-ce3a682d-975a-4d0e-852b-f61117d8290c +Openstack-Request-Id: req-76d92f63-5756-475e-b593-2d82bc7d2cae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-5d28727e-436b-4a6f-b942-b249c70badba +Openstack-Request-Id: req-1c53cfe6-a775-4677-ae8d-b50df6c139f1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-5d28727e-436b-4a6f-b942-b249c70badba +Openstack-Request-Id: req-390682c3-e604-4bee-a54e-ab327b356562 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-17d3f887-7c30-4c12-94a7-25782607c07f +Openstack-Request-Id: req-b8053eac-4db9-45c8-9fce-512bc096bb3d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-17d3f887-7c30-4c12-94a7-25782607c07f +Openstack-Request-Id: req-49b0f334-4753-4b42-919b-2ba14d75fccd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 -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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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 -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-252928f0-37bc-451d-bfe3-029cc7b16d32 +Openstack-Request-Id: req-31c33819-0d4f-4271-8e2a-73ac36f35212 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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/5f65c9de-35e9-44af-90a4-7b0dfbb6c1a3 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/5f65c9de-35e9-44af-90a4-7b0dfbb6c1a3 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-252928f0-37bc-451d-bfe3-029cc7b16d32 +Openstack-Request-Id: req-6ed786c5-1992-4781-8635-4cfe6332cb73 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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'}}] -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/5634d91b-5c92-4ced-9b2c-c4031843d8f3 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/5634d91b-5c92-4ced-9b2c-c4031843d8f3 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c327601b-111c-40a3-9b9b-5b9a60579585 +Openstack-Request-Id: req-2b6952d6-62e0-4433-a6d9-5525906e0775 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} -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/c2fdbdce-c7c3-4e76-a067-f63724b74e6e +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.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.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_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.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.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_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.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.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_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.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.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.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.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_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.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.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.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.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.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.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_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.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.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.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.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.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_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.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_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.ilo.test_bios.IloBiosTestCase.test_get_properties +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_get_properties ... 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.drivers.modules.ilo.test_bios.IloBiosTestCase.test_validate +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_validate ... 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.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_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.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.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.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_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_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.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.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 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/c2fdbdce-c7c3-4e76-a067-f63724b74e6e {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c327601b-111c-40a3-9b9b-5b9a60579585 +Openstack-Request-Id: req-0bcf47a8-3430-448c-96b2-8703f6c8cba9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-934c44d8-3e4e-4a6e-9f63-7517bf0219d3 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-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}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-934c44d8-3e4e-4a6e-9f63-7517bf0219d3 +Openstack-Request-Id: req-b2413ead-00ca-4cec-8b44-60359a25ae69 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: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-078f01be-5132-49ca-beff-9bdf9d72a769 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-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}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-078f01be-5132-49ca-beff-9bdf9d72a769 +Openstack-Request-Id: req-1e2f633b-f8b0-42ef-853d-5212f2630c6e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: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-502b89fb-ecd7-4e35-8044-a6579d6067bd +Openstack-Request-Id: req-199c69b9-8321-4efc-a977-107ea26321d9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} -ACL Test GOT Response: 403 Forbidden +{"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-502b89fb-ecd7-4e35-8044-a6579d6067bd +Openstack-Request-Id: req-d111d3a7-996e-4f8b-b389-237c3b5e9d48 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-2dee94a4-4ff3-493d-aadf-61020c0ef704 +Openstack-Request-Id: req-63ab7eb7-1c88-4321-bde0-faf97443aeba X-Openstack-Ironic-Api-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 +{"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-2dee94a4-4ff3-493d-aadf-61020c0ef704 +Openstack-Request-Id: req-a4dd03fc-eeb6-40dd-bd1a-1f504b179a65 X-Openstack-Ironic-Api-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\": \"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-fceda393-f341-4037-b6ae-ea545c6e47d2 +Openstack-Request-Id: req-77f06d5d-7698-4a13-90aa-32a0bbeeae5d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 +GET: /v1/nodes {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fceda393-f341-4037-b6ae-ea545c6e47d2 +Openstack-Request-Id: req-4255d4ac-fbc1-4521-a285-42228cc197c1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 -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 +GET: /v1/nodes {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-aa7f3f35-0433-42cb-83a7-8614a8386336 +Openstack-Request-Id: req-9f00a697-82e6-4aea-a146-8b42001e5d00 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"nodes": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-aa7f3f35-0433-42cb-83a7-8614a8386336 +Openstack-Request-Id: req-9f00a697-82e6-4aea-a146-8b42001e5d00 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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.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.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.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.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.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_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.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.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_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.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.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.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.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.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.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_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.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.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.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_boot.IloPXEBootTestCase.test_prepare_instance -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance ... 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.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.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_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.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.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.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_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.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.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.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.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.conductor.test_manager.ConsoleTestCase.test_enable_console_already_enabled -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_enable_console_already_enabled ... 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-5409cdaa-003a-471f-bcf9-504b29f5803f +Openstack-Request-Id: req-0f246941-7592-4c51-865b-28bf77929ffd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-5409cdaa-003a-471f-bcf9-504b29f5803f +Openstack-Request-Id: req-c45d267e-cc51-4d1c-8d91-b56b8f6f51a5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: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-abac0736-c3ff-49ca-888a-0368dc571a7a +Openstack-Request-Id: req-142fc7ee-e74d-4e06-9b8e-dac343c43a53 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-abac0736-c3ff-49ca-888a-0368dc571a7a +Openstack-Request-Id: req-e59a5cfd-ecd9-4e8b-a271-9ba43c5886fc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-f5394e43-1557-453e-9880-3e4855db6a74 +Openstack-Request-Id: req-c51dccf1-7938-4c2f-989a-865de9a121ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-f5394e43-1557-453e-9880-3e4855db6a74 +Openstack-Request-Id: req-667fe6cd-140f-4f04-9551-0123ec82d9c1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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_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.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.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.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.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.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_028_nodes_maintenance_put_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_028_nodes_maintenance_put_observer ... 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.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.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.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_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.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.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.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.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.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.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 +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-8a0f2b66-c6d8-4670-a2d3-ec47667882f2 +Openstack-Request-Id: req-3a74bdff-41f2-4a06-bd6a-64978ad475fa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-8a0f2b66-c6d8-4670-a2d3-ec47667882f2 +Openstack-Request-Id: req-5b3311f6-20b9-4b6d-bf75-b1fa1a1eb2d0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-8f24641d-f9d0-4cee-8f58-38a9fb6abc38 +Openstack-Request-Id: req-cead7203-7036-4df8-8b5b-175b193d7dce X-Openstack-Ironic-Api-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 +{"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-8f24641d-f9d0-4cee-8f58-38a9fb6abc38 +Openstack-Request-Id: req-0bcbc7e8-f75f-4c45-95b3-8b748b4d160e X-Openstack-Ironic-Api-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 +{"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-5cff4beb-75c7-4832-9896-3f1b699db2ad +Openstack-Request-Id: req-3040bdfa-d8b6-4b22-b8bf-e5be10b3679a 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 +{"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-5cff4beb-75c7-4832-9896-3f1b699db2ad +Openstack-Request-Id: req-951122a8-9abc-4080-8f27-56df2d8fc736 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\": \"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-fa6a55d7-6914-4b92-bf8c-8e8965553c0d +Openstack-Request-Id: req-21fb0987-6644-4ca7-9e6e-77f919d6f40a 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\": \"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-fa6a55d7-6914-4b92-bf8c-8e8965553c0d +Openstack-Request-Id: req-080e2365-1a0e-4af6-ad34-0fe082b05f8c 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 {} +{"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-5b5178b3-3bce-49e5-b078-1b41814ce032 +Openstack-Request-Id: req-8414b574-b199-4e6e-9176-3817507c8f8a X-Openstack-Ironic-Api-Maximum-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 -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console ... 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.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.conductor.test_manager.ConsoleTestCase.test_get_console_disabled -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled ... 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.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.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.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.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.ConsoleTestCase.test_set_console_mode_disabled -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled ... 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.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.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.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.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.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.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.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance ... ok -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 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-5b5178b3-3bce-49e5-b078-1b41814ce032 +Openstack-Request-Id: req-09cb53b3-84f4-484f-bf4e-6ef5ff9d2757 X-Openstack-Ironic-Api-Maximum-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 +{"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-9cf86975-fa51-4682-aaff-6006718f1973 +Openstack-Request-Id: req-ad1787bd-3c00-4f04-86f8-7506c19922c3 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 +{"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-9cf86975-fa51-4682-aaff-6006718f1973 +Openstack-Request-Id: req-80f8cb7d-7872-4118-ae5f-a380c396f359 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 +{"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-9048d805-cb8e-45d8-b660-63df78814de5 +Openstack-Request-Id: req-8340f6d0-e6e7-49bd-84b7-5e2c5215d2ca 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}"} +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-9048d805-cb8e-45d8-b660-63df78814de5 +Openstack-Request-Id: req-8398ffe4-2859-40e5-b6e8-d5de5b62fd3c 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\": \"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 +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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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 +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.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.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.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.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.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.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.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.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.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.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.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.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.irmc.test_boot.IRMCPXEBootBasicTestCase.test_get_properties +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_get_properties ... 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.redfish.test_bios.RedfishBiosTestCase.test_validate +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_validate ... 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.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.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.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.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.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.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.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.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_while_ejecting +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_while_ejecting ... ok +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-078a2b14-332d-4d9c-a74a-4b24cbef8b39 +Openstack-Request-Id: req-42bdffff-aa5b-4409-97a7-2984331539aa 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\": \"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-078a2b14-332d-4d9c-a74a-4b24cbef8b39 +Openstack-Request-Id: req-c2f1f86d-4fc5-42e5-8be5-9e8c82456422 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\": \"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-dc729ccc-3085-4e11-b358-bb86ea1e007d +Openstack-Request-Id: req-f0484aac-5cea-4887-adf6-027ac95ba561 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": "2024-01-06T10:57:58.139594+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\": \"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-dc729ccc-3085-4e11-b358-bb86ea1e007d +Openstack-Request-Id: req-a5bd81da-9e24-4dc5-9c82-8d0a967afff3 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": "2024-01-06T10:57:58.139594+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\": \"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-7e447057-6e98-44d1-9186-37087ec5af06 +Openstack-Request-Id: req-1bd75328-eea1-45c5-af4a-1dca6fcb748e 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-06T10:57:58.229530+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 +{"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-7e447057-6e98-44d1-9186-37087ec5af06 +Openstack-Request-Id: req-26c8b71d-a771-478d-94e1-fac4ed8eb769 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-06T10:57:58.229530+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.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.ConsoleTestCase.test_set_console_mode_stop_fail -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_stop_fail ... 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.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_instance -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_instance ... 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_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.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.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.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.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 -/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.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.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.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.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.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_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.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.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 -/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.ManagerDoSyncPowerStateTestCase.test_get_power_state_error -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error ... 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 -/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.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail ... 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 -/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.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 " -/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.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded ... 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 -/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.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 ... 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 " -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\": \"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-c1f8ae5f-acc8-4452-b83c-9804032249bc +Openstack-Request-Id: req-e1b75afa-ec0e-4c51-bb20-74409f914264 X-Openstack-Ironic-Api-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 +{"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-c1f8ae5f-acc8-4452-b83c-9804032249bc +Openstack-Request-Id: req-cc80d436-a032-4e59-af6f-5540a9b9231a X-Openstack-Ironic-Api-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\": \"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-8f004e31-9caa-4073-9f91-8cc020eb5664 +Openstack-Request-Id: req-89111726-dbb9-415a-b7ac-45405e0e8c79 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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/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-8f004e31-9caa-4073-9f91-8cc020eb5664 +Openstack-Request-Id: req-a608f466-b8c0-45c0-97ff-6fef98f765c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"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-f2020373-01da-4cd7-a0fd-088d01cb7438 +Openstack-Request-Id: req-3b532a42-fbd0-4adc-9945-04ff70dc4683 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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-f2020373-01da-4cd7-a0fd-088d01cb7438 +Openstack-Request-Id: req-97e02a67-c57a-48a8-af73-9f7bcb60a08b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"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-cb0dae71-b296-44d0-bdc1-cbf5de42ff2f +Openstack-Request-Id: req-d608ab9f-d06a-4f34-85aa-1e54c2cd0ff3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 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-cb0dae71-b296-44d0-bdc1-cbf5de42ff2f +Openstack-Request-Id: req-55882e53-61b4-4a49-b3ee-310b963d3110 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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 {} +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.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.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.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_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.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.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.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.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.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 +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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_port +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_port ... ok +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5f35cb9f-d75a-480a-92fa-c6f9b2a2b918 +Openstack-Request-Id: req-01f06f27-6317-4118-8b3c-298769734f23 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 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-5f35cb9f-d75a-480a-92fa-c6f9b2a2b918 +Openstack-Request-Id: req-e7f46357-7b98-4380-a71d-4565bb2f4bb8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-a7ad2414-0dd6-4bb0-80b0-34a4de93a933 +Openstack-Request-Id: req-6bb7ab49-d5fb-4b0e-8864-d5dfeec5a07c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 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-a7ad2414-0dd6-4bb0-80b0-34a4de93a933 +Openstack-Request-Id: req-20ee653c-8402-4626-99ef-6d28d3fc0711 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-1c76d867-0ab1-4669-a9cf-3380ac033979 +Openstack-Request-Id: req-db60a84d-4ecf-452c-a7db-ce0660e841a6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1c76d867-0ab1-4669-a9cf-3380ac033979 +Openstack-Request-Id: req-9f9f5e8f-2bb4-4aaa-bc4a-f88431a8c3c4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-138591ab-c92d-42ff-965d-cc75e048a985 +Openstack-Request-Id: req-3cd4f192-4ddf-42f4-9039-0fdfffa58773 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-138591ab-c92d-42ff-965d-cc75e048a985 +Openstack-Request-Id: req-8e78cd73-d399-4e1f-b28a-92445615a137 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-943ce57e-4963-4e15-b23e-163f8c52cd54 +Openstack-Request-Id: req-076032f9-21f7-4257-9af2-588efc958e0d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 -/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_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.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 -/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.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.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 " -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 -/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.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.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 -/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.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.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 -/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.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync ... 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 -/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_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.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 -/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.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify ... 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 -/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.ManagerDoSyncPowerStateTestCase.test_state_changed_sync -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync ... 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 -/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.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed ... 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.ManagerDoSyncPowerStateTestCase.test_state_not_set -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set ... 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 -/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.ManagerDoSyncPowerStateTestCase.test_state_unchanged -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged ... 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 -/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_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 -/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.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.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 " -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 -/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.ManagerDoSyncPowerStateTestCase.test_vendor_detection -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_vendor_detection ... 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 -/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.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.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.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.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.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.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.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.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance ... ok -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 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-943ce57e-4963-4e15-b23e-163f8c52cd54 +Openstack-Request-Id: req-71ec4aa0-b604-484d-9a04-6542049e32e6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3e1e175d-1f5e-4fa0-86ce-eee9ed9d8251 +Openstack-Request-Id: req-f83bff6b-aefb-44cc-be43-afe05bccdd0f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3e1e175d-1f5e-4fa0-86ce-eee9ed9d8251 +Openstack-Request-Id: req-62526d81-6a03-4168-88aa-53af154afcee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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'}}] -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 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-eb44b1ab-8a75-471b-a6c2-67abb04a8655 +Openstack-Request-Id: req-be695285-4234-4522-9bfd-03e54965a871 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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-eb44b1ab-8a75-471b-a6c2-67abb04a8655 +Openstack-Request-Id: req-10d020de-f1b3-4f0f-84da-3c7720cfc8cf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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'}}] -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 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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_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.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.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.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.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_boot.IRMCVirtualMediaBootTestCase.test_clean_up_ramdisk +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_ramdisk ... 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.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.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_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.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.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_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.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.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.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_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.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.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.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.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_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_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.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_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.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_local +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_local ... ok +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-dd147d85-c3c9-4dbd-9465-69f93f1ddf5c +Openstack-Request-Id: req-bd570398-44eb-4d55-b053-bea36ecd6208 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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-dd147d85-c3c9-4dbd-9465-69f93f1ddf5c +Openstack-Request-Id: req-672847f4-920f-44f6-b952-a79bfb4b8699 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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'}}] -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 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-7fea56e6-2578-4a9c-89d6-ffc8de29cf18 +Openstack-Request-Id: req-e097ff2b-8a93-43e5-8f91-2db30af66f81 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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/console +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7fea56e6-2578-4a9c-89d6-ffc8de29cf18 +Openstack-Request-Id: req-6fea4de1-4d4b-4c58-aab1-6c16af84ec7a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: 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/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-a28e9e8d-1c0d-4cfd-b467-3472ea61d026 +Openstack-Request-Id: req-cd032317-b091-4fe9-bfeb-c220cc8f4f02 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a28e9e8d-1c0d-4cfd-b467-3472ea61d026 +Openstack-Request-Id: req-a7db87c2-e78b-403a-a850-d856d75b332c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: 403 Forbidden +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-38283ab6-aa04-43cd-9b22-c14d919a26fa +Openstack-Request-Id: req-bdca33a7-e42a-480b-bdd7-cc607df89bd2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-38283ab6-aa04-43cd-9b22-c14d919a26fa +Openstack-Request-Id: req-28f87c22-7904-42f1-aa04-1c83d919c1b7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: 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/vendor_passthru/methods +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d177ec24-7d64-42b4-a551-279817420e20 +Openstack-Request-Id: req-2355f83c-b378-42bc-8f0b-b5771f452478 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d177ec24-7d64-42b4-a551-279817420e20 +Openstack-Request-Id: req-54d71635-b63a-4912-8413-28e31295f1fd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-268fddd3-e244-4887-baa2-aa596330ab17 +Openstack-Request-Id: req-dd0a8e1a-abfe-48ca-a3a2-8b9d685e6ec9 X-Openstack-Ironic-Api-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.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.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.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.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.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.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.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.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.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.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate ... 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.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.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.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.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.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_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.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.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_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.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.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.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.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.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.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.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.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 -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/vendor_passthru?method=test +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-268fddd3-e244-4887-baa2-aa596330ab17 +Openstack-Request-Id: req-f1cfb8a0-13b0-44d4-adb0-c008d75437c1 X-Openstack-Ironic-Api-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 +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9380dca8-59da-452c-8bd7-db73210242d7 +Openstack-Request-Id: req-963eda34-5682-4532-8466-ea74e4c891c9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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/vendor_passthru?method=test +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-9380dca8-59da-452c-8bd7-db73210242d7 +Openstack-Request-Id: req-587cb208-bbe5-4ad3-aaa8-6f1c90749210 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"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 +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.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.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_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.redfish.test_vendor.RedfishVendorPassthruTestCase.test_create_subscription +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_create_subscription ... ok +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.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.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.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.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.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.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.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.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.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate ... 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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.AgentDeployMixinTest.test_boot_instance +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_boot_instance ... 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.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.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_agent_base.AgentDeployMixinTest.test_configure_local_boot +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot ... 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.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_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_086_nodes_traits_put_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_086_nodes_traits_put_member ... 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.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.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.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 +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-5702aa38-9f94-44d0-b843-4b826064ccf6 +Openstack-Request-Id: req-ba55fec8-63b1-4b5e-ba03-07d262142d3a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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-5702aa38-9f94-44d0-b843-4b826064ccf6 +Openstack-Request-Id: req-5c3f6216-8c25-44a7-a631-0ae5e81bcee1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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: 403 Forbidden +{"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 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-668474b1-1c24-4d65-9af9-50f664c8f8c0 +Openstack-Request-Id: req-5067bd95-8e96-4c7a-8abc-cac4748d608d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-668474b1-1c24-4d65-9af9-50f664c8f8c0 +Openstack-Request-Id: req-9ad3ae6b-3d43-4031-96b4-56e706c7b5c1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b4e1ea64-316a-4a21-a98a-665bf1553b19 +Openstack-Request-Id: req-23b8fd8b-4ff2-4f1c-b294-e6db72626abc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b4e1ea64-316a-4a21-a98a-665bf1553b19 +Openstack-Request-Id: req-add4d9da-efb0-4f8c-8322-79e58692e1be X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5a7920a6-dbaf-43a7-afad-2c9a5894b70e +Openstack-Request-Id: req-eb4dabcd-a527-404b-9098-6e8987094d95 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5a7920a6-dbaf-43a7-afad-2c9a5894b70e +Openstack-Request-Id: req-f0e50209-eea3-496d-bd56-1d3dba471f82 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9b24b85c-14bd-43f3-9f7a-f6a9b47c9d7a +Openstack-Request-Id: req-3a326abd-8dff-4016-a8cc-e71069ec11df X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9b24b85c-14bd-43f3-9f7a-f6a9b47c9d7a +Openstack-Request-Id: req-c42cb50f-072a-44b9-80f7-0e820e3da388 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e0ad896d-1cec-4be2-b474-3eb2bfcadf5a +Openstack-Request-Id: req-9ea2872e-ee65-4750-a4d7-28e2dcd32308 X-Openstack-Ironic-Api-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e0ad896d-1cec-4be2-b474-3eb2bfcadf5a +Openstack-Request-Id: req-1d4ce099-5d76-4c4e-be8b-47493c95baaf X-Openstack-Ironic-Api-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 {} -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/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-338f67d1-2a5d-44c0-ac32-9b78e88e9391 +Openstack-Request-Id: req-aa24d99b-76c9-49ac-bcb2-9eed4bb146d1 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate ... 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.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.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.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.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.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 -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 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-338f67d1-2a5d-44c0-ac32-9b78e88e9391 +Openstack-Request-Id: req-557c88fe-5aee-4fc4-8b00-ae863fa3e7b2 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\": \"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']} +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.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.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.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.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.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.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.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.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.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.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.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.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_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_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.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.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.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.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.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.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.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.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_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.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.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_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.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.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.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.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.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.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_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.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.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.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.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_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.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_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.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_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.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.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.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.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.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_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.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.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.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.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.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.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.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 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d1449759-abef-45dc-bacd-dc0d16e39910 +Openstack-Request-Id: req-3e921578-4979-4f80-b1ee-a0386e50876d 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}"} +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-d1449759-abef-45dc-bacd-dc0d16e39910 +Openstack-Request-Id: req-d3bbcb3e-514e-4db1-87d3-4e9b6a4c9beb 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 {} +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-842de674-70b8-4b5c-ac2f-d1f43198e19a +Openstack-Request-Id: req-b41d390a-f6a9-45f1-ab5a-3b17dce36dec X-Openstack-Ironic-Api-Maximum-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-842de674-70b8-4b5c-ac2f-d1f43198e19a +Openstack-Request-Id: req-4af6e351-a280-41ac-9109-f50cfe180cb5 X-Openstack-Ironic-Api-Maximum-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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9176b650-1c5f-45a5-b27d-bcb3cb3efa12 +Openstack-Request-Id: req-f69b4935-5576-496c-adee-dfe4e956d8e8 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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9176b650-1c5f-45a5-b27d-bcb3cb3efa12 +Openstack-Request-Id: req-a1c741db-54c9-4d5e-9969-6ad421e1297d 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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f8e4dcb3-bdeb-40e8-bba8-a3d3c79539ae +Openstack-Request-Id: req-07ed1b5a-38c3-4a9f-b8b9-36fd5a21a55c 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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f8e4dcb3-bdeb-40e8-bba8-a3d3c79539ae +Openstack-Request-Id: req-68d7daf7-88eb-45cc-bf6b-d25ebafe90d5 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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e01826e5-bf65-4d0f-89da-c2cb8dfa0a45 +Openstack-Request-Id: req-aeac187f-20b6-4bf7-b208-2910d6582d46 X-Openstack-Ironic-Api-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 +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e01826e5-bf65-4d0f-89da-c2cb8dfa0a45 +Openstack-Request-Id: req-56fc1164-a769-4ea6-b24c-550623a1cdb0 X-Openstack-Ironic-Api-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 +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4077f4f7-24f9-4378-9867-83ff728f7262 +Openstack-Request-Id: req-0344cc74-5862-42c0-aa81-cee658591496 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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4077f4f7-24f9-4378-9867-83ff728f7262 +Openstack-Request-Id: req-3ce0497f-b184-4ffc-ab6e-e48c33863199 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\": \"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5d8ad9d6-d4a4-4c2c-b290-c8bae876e035 +Openstack-Request-Id: req-19f64656-16a1-4773-b1bb-0478b59f3eae 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.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__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.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.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.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.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.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.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_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.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.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.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.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_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.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.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.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.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.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.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.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.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_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_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.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.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 -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/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 Content-Type: application/json -Openstack-Request-Id: req-5d8ad9d6-d4a4-4c2c-b290-c8bae876e035 +Openstack-Request-Id: req-7ad2d262-7e9d-4ca2-9623-c8cb3622fba9 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/volume/connectors -GET: /v1/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 post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} +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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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_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.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.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.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.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.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.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.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.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.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_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_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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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_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_noop_mgmt.TestNoopManagement.test_dummy_methods +ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods ... 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.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.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.test_irmc.IRMCHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_default_interfaces ... 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.test_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue ... 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.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.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.test_irmc.IRMCHardwareTestCase.test_override_with_boot_configuration +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_boot_configuration ... 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.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.test_irmc.IRMCHardwareTestCase.test_override_with_inspector +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector ... 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.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power ... 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.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.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.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.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.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.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.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.objects.test_deploy_template.TestDeployTemplateObject.test_save +ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_save ... 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.objects.test_volume_connector.TestVolumeConnectorObject.test_destroy +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_destroy ... 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.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.objects.test_volume_connector.TestVolumeConnectorObject.test_get +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get ... 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.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.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.objects.test_volume_connector.TestVolumeConnectorObject.test_list +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list ... 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.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.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.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas ... ok +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-35d12840-5d82-430c-9b0a-83245f685bf5 +Openstack-Request-Id: req-c76837b6-b627-4677-8bf1-84c7e7e5a3cd 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 +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-35d12840-5d82-430c-9b0a-83245f685bf5 +Openstack-Request-Id: req-e60087a2-058a-4fa8-a80d-bf4294bf8b38 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"connectors": []} -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 +{"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 -Location: http://localhost/v1/volume/connectors/c40dbdd8-d67a-4a0e-a22b-8e172893d5ca -Openstack-Request-Id: req-c1e4c740-8c68-4c11-a550-73f3e9d81c75 +Openstack-Request-Id: req-b1c5f075-a988-4a2f-bc5b-dac11f053f91 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "c40dbdd8-d67a-4a0e-a22b-8e172893d5ca", "created_at": "2024-01-06T10:58:00.795771+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/c40dbdd8-d67a-4a0e-a22b-8e172893d5ca", "rel": "self"}, {"href": "http://localhost/volume/connectors/c40dbdd8-d67a-4a0e-a22b-8e172893d5ca", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} -ACL Test 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 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 -Location: http://localhost/v1/volume/connectors/c40dbdd8-d67a-4a0e-a22b-8e172893d5ca -Openstack-Request-Id: req-c1e4c740-8c68-4c11-a550-73f3e9d81c75 +Openstack-Request-Id: req-b87e501e-9af0-43c7-b1f2-4a3e3821287a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "c40dbdd8-d67a-4a0e-a22b-8e172893d5ca", "created_at": "2024-01-06T10:58:00.795771+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/c40dbdd8-d67a-4a0e-a22b-8e172893d5ca", "rel": "self"}, {"href": "http://localhost/volume/connectors/c40dbdd8-d67a-4a0e-a22b-8e172893d5ca", "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 +{"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 -Location: http://localhost/v1/volume/connectors/2e636473-5cf5-45cc-87ef-1d574f4fe17b -Openstack-Request-Id: req-a32370ef-0e8d-466f-9d33-78d84a7b64e0 +Openstack-Request-Id: req-fb455f9d-1a3e-402a-912b-eba95391e9db X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "2e636473-5cf5-45cc-87ef-1d574f4fe17b", "created_at": "2024-01-06T10:58:00.871525+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/2e636473-5cf5-45cc-87ef-1d574f4fe17b", "rel": "self"}, {"href": "http://localhost/volume/connectors/2e636473-5cf5-45cc-87ef-1d574f4fe17b", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} -ACL Test 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/management/indicators +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/volume/connectors/2e636473-5cf5-45cc-87ef-1d574f4fe17b -Openstack-Request-Id: req-a32370ef-0e8d-466f-9d33-78d84a7b64e0 +Openstack-Request-Id: req-32aaa5db-6bc9-4cf6-8dca-d6c1450f80c5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "2e636473-5cf5-45cc-87ef-1d574f4fe17b", "created_at": "2024-01-06T10:58:00.871525+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/2e636473-5cf5-45cc-87ef-1d574f4fe17b", "rel": "self"}, {"href": "http://localhost/volume/connectors/2e636473-5cf5-45cc-87ef-1d574f4fe17b", "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 +{"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-20ddbad5-4588-4019-83a4-9762558dfa28 +Openstack-Request-Id: req-fd68ee7f-2b0e-4f6a-a351-1239dc7914d3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-20ddbad5-4588-4019-83a4-9762558dfa28 +Openstack-Request-Id: req-1e3b2d16-27ad-456c-bd82-07f97e9ddd4d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'type': 'ip', 'connector_id': '192.168.1.100'} +{"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-9961f61d-8e6b-46f6-bfb7-cdf679ae9353 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-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-9961f61d-8e6b-46f6-bfb7-cdf679ae9353 +Openstack-Request-Id: req-5cd32a27-8371-433a-9ee8-2c655fd86766 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'type': 'ip', 'connector_id': '192.168.1.100'} +{"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-dc820c12-4650-4408-a4cb-1ba946dfba5b +Openstack-Request-Id: req-409faac3-aa44-4721-836f-f6ffb36c173c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-dc820c12-4650-4408-a4cb-1ba946dfba5b +Openstack-Request-Id: req-a68ee17f-9ff1-417d-b55d-1caa55d1a6d6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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_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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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_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.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.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_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.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.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 -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-3c6fa199-e5c1-40ec-b64b-1c485f54c369 +Openstack-Request-Id: req-66f12880-6b97-41a2-b7ab-1c8c21de85d6 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-06T10:58:01.133433+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 +{"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-3c6fa199-e5c1-40ec-b64b-1c485f54c369 +Openstack-Request-Id: req-61e8019b-fd67-430a-aa70-de7e73689185 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-06T10:58:01.133433+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 +{"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-f7c1d88b-a774-46e3-a6a6-3404d5405719 +Openstack-Request-Id: req-1751aa95-66e7-40c0-b076-d938cdaf61a3 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-06T10:58:01.206074+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 +{"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-f7c1d88b-a774-46e3-a6a6-3404d5405719 +Openstack-Request-Id: req-56e8e153-196e-4091-9939-4dd122d3c0d4 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-06T10:58:01.206074+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 {} +{"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 {} +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.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh ... 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.objects.test_volume_connector.TestVolumeConnectorObject.test_save +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save ... 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.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-99faab78-1fac-4c2b-b01a-e805ea5f1fbd +Openstack-Request-Id: req-58f0470b-d075-4851-9343-76e1fd2e264d X-Openstack-Ironic-Api-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\": \"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-99faab78-1fac-4c2b-b01a-e805ea5f1fbd -X-Openstack-Ironic-Api-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 -Content-Type: application/json -Openstack-Request-Id: req-08ef9389-f3ec-4d63-a7da-2abb3e5584dd -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-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-08ef9389-f3ec-4d63-a7da-2abb3e5584dd -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-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 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-5bf132e1-6c52-470b-8758-b2291e8585c2 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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-5bf132e1-6c52-470b-8758-b2291e8585c2 +Openstack-Request-Id: req-58f0470b-d075-4851-9343-76e1fd2e264d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"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/cfeb45d2-d978-4e3c-a9a4-19c441fa3762 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/cfeb45d2-d978-4e3c-a9a4-19c441fa3762 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-417609ef-a817-4478-a968-bb568ae6044d +Openstack-Request-Id: req-88ab51d0-66b5-4edc-b9ee-a01286ef6d0d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-417609ef-a817-4478-a968-bb568ae6044d +Openstack-Request-Id: req-88ab51d0-66b5-4edc-b9ee-a01286ef6d0d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ec847e2a-943e-49ea-a0a5-953c37f73e21 +Openstack-Request-Id: req-0342e04c-2090-45d0-bb93-ca4f0e88d8a4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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-ec847e2a-943e-49ea-a0a5-953c37f73e21 +Openstack-Request-Id: req-0342e04c-2090-45d0-bb93-ca4f0e88d8a4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_fail -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_fail ... 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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} +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.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.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_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.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_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.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.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_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.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_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_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_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_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.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.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_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_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.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.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_image_cache.CleanupImageCacheTestCase.test_clean_up_another_fs +ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_another_fs ... ok +ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail +ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail ... ok +ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_no_clean_up +ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_no_clean_up ... 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_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.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_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.test_xclarity.XClarityHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_xclarity.XClarityHardwareTestCase.test_default_interfaces ... 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_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.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_missing +ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_missing ... 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_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_allocation.TestConvertToVersion.test_owner_unsupported_set_remove +ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_remove ... 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.objects.test_trait.TestTraitObject.test_as_dict +ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict ... ok +ironic.tests.unit.objects.test_trait.TestTraitObject.test_create +ironic.tests.unit.objects.test_trait.TestTraitObject.test_create ... 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.objects.test_trait.TestTraitObject.test_destroy +ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy ... 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.objects.test_trait.TestTraitObject.test_destroy_list +ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy_list ... ok +ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists +ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists ... 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.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.objects.test_trait.TestTraitObject.test_get_trait_names +ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names ... 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.test_base.BlockExecuteTestCase.test_exception_raised_for_execute +ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute ... 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 +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-93e37b91-8d3b-4ea7-82e8-4a14d433a62c +Openstack-Request-Id: req-e4460ffe-c34d-4631-ab73-dc96dc152a54 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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": "2025-02-07T17:33:10.869119+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-93e37b91-8d3b-4ea7-82e8-4a14d433a62c +Openstack-Request-Id: req-86e43e7f-c7b7-4410-b49d-5cf975c62783 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"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-8f826761-67ba-40e2-98c4-b5a7aff273b5 +Openstack-Request-Id: req-faeecdde-4369-4050-b4da-1305137fa656 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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-8f826761-67ba-40e2-98c4-b5a7aff273b5 +Openstack-Request-Id: req-67e89006-c23e-4dd3-8050-01d658de8ff7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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: 404 Not Found +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:11.475643+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-aa211975-3592-42d1-ba83-aa3e56773ad5 +Openstack-Request-Id: req-cede24bc-479a-4bdb-8b56-dcc3cfe050e8 X-Openstack-Ironic-Api-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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T17:33:11.611412+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 -Openstack-Request-Id: req-aa211975-3592-42d1-ba83-aa3e56773ad5 +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +PATCH: /v1/volume/connectors/4fdc22bc-ffda-4306-ac17-1f21b3cfcb59 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-8566d555-aaa9-4814-baa9-62c88ff3a9e7 X-Openstack-Ironic-Api-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: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 4fdc22bc-ffda-4306-ac17-1f21b3cfcb59 could not be found.\", \"debuginfo\": null}"} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8527f30c-547f-4841-b8db-d1b3ceeb53bb +Openstack-Request-Id: req-ab58e8f6-8b57-4908-a16d-9c953016d558 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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: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-8527f30c-547f-4841-b8db-d1b3ceeb53bb +Openstack-Request-Id: req-a8dc5d35-687a-4756-ba57-c0ffa2682c0e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"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 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f5ddc4e9-842c-4661-9ecb-bc3e89e52d21 +Openstack-Request-Id: req-1d9e6af5-fc51-4be6-aa0b-8ca8b9222b2a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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}"} +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-f5ddc4e9-842c-4661-9ecb-bc3e89e52d21 +Openstack-Request-Id: req-147e0880-3944-4e3d-9df7-a172faff582c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"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-b3d008e8-3e93-4f25-91a3-c96391fd81c7 +Openstack-Request-Id: req-ac25240f-8db4-4c26-b2d3-7a56ed13ebb1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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}"} +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-b3d008e8-3e93-4f25-91a3-c96391fd81c7 +Openstack-Request-Id: req-fb174602-f6aa-4275-a3b8-bc890c9f0fad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"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-a5aec4f1-6cd3-4426-bc39-fba6009f4c3c +Openstack-Request-Id: req-634344ac-647a-45ce-b406-d2e8263cef9d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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}"} +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-a5aec4f1-6cd3-4426-bc39-fba6009f4c3c +Openstack-Request-Id: req-d4aebdb7-fc94-4aeb-a873-751e759ba0c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"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-9f1fd56b-481c-47ca-9a12-f29c66a3f217 +Openstack-Request-Id: req-9ac17696-a3e3-45f9-bc00-9061fdbb4a4d X-Openstack-Ironic-Api-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\": \"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-9f1fd56b-481c-47ca-9a12-f29c66a3f217 +Openstack-Request-Id: req-f7b7d2b8-dffe-4176-98ab-742802937c3d X-Openstack-Ironic-Api-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.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.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.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.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.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.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.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.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.ibmc.test_vendor.IBMCVendorTestCase.test_validate -ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_validate ... 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.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 -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.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.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_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.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.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.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_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.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.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.redfish.test_bios.RedfishBiosTestCase.test_loading_error -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_loading_error ... ok -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 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-9efbd6e1-fec5-4bc7-8ff9-84b448d70ccc +Openstack-Request-Id: req-9e59cbf1-7b65-41ae-add3-8b61be2a89df 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 +{"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-9efbd6e1-fec5-4bc7-8ff9-84b448d70ccc +Openstack-Request-Id: req-b15fb382-a340-4dab-8f17-c84e6588a8db 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"}]} -API ACL Testing Path get /v1/volume/targets -GET: /v1/volume/targets {} -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/portgroups +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1ecb2f02-0a76-4125-9dc7-665916371bfa +Openstack-Request-Id: req-335c17b9-8228-4030-801f-4d7173d225c5 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 +{"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-1ecb2f02-0a76-4125-9dc7-665916371bfa +Openstack-Request-Id: req-772450c3-3cfe-40ab-81bb-1ffb48a5d2e9 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"}]} -API ACL Testing Path get /v1/volume/targets -GET: /v1/volume/targets {} -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/portgroups/detail +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} +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.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.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 +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.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.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.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.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.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.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.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.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.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.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 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ef76e9d7-7550-4fe4-890c-f32e5841b647 +Openstack-Request-Id: req-1807b8f5-e764-460a-bbfc-6fc01d69afc5 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 +{"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-ef76e9d7-7550-4fe4-890c-f32e5841b647 +Openstack-Request-Id: req-dc529cda-d2ac-4154-8a88-da31edfc8d25 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"targets": []} -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 +{"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-2315cf2a-2a1e-4845-886b-f4b4c245a361 +Openstack-Request-Id: req-d800637d-03e4-4e8c-a27d-2e27d9ae9276 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-06T10:58:02.440074+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 +{"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 Content-Type: application/json -Openstack-Request-Id: req-2315cf2a-2a1e-4845-886b-f4b4c245a361 +Openstack-Request-Id: req-e006341c-af32-41f0-aa12-30cd9a8e11c5 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-06T10:58:02.440074+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 +{"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-f3b7a278-6cc1-4902-a8dd-890a6cf8425f +Openstack-Request-Id: req-cd5f897c-2f69-4670-a0ca-e78e0ef018fa 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-06T10:58:02.511756+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 +{"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-f3b7a278-6cc1-4902-a8dd-890a6cf8425f +Openstack-Request-Id: req-419e19b5-b730-4829-b845-ee845effc029 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-06T10:58:02.511756+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.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.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.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.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.redfish.test_bios.RedfishBiosTestCase.test_validate -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_validate ... 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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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_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_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.AgentRAIDTestCase.test__create_configuration_final -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final ... 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.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_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 -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 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-1de1317b-00b1-4d38-afc4-ba0fd5c27d0e +Openstack-Request-Id: req-581f9b75-adca-4f6c-87af-a3da80b1dff3 X-Openstack-Ironic-Api-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: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-1de1317b-00b1-4d38-afc4-ba0fd5c27d0e +Openstack-Request-Id: req-9c6bf120-5584-455a-8720-bbef375f0536 X-Openstack-Ironic-Api-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 post /v1/volume/targets -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 +{"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 -Location: http://localhost/v1/volume/targets/1180320e-139d-440e-a13e-651f28945a43 -Openstack-Request-Id: req-bb5a7add-6421-49f8-a374-b5bc82a7db83 +Openstack-Request-Id: req-7c887d73-3116-4161-b5e9-fc5cd7533bd2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1180320e-139d-440e-a13e-651f28945a43", "created_at": "2024-01-06T10:58:02.680116+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1180320e-139d-440e-a13e-651f28945a43", "rel": "self"}, {"href": "http://localhost/volume/targets/1180320e-139d-440e-a13e-651f28945a43", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} -ACL Test GOT Response: 201 Created +{"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 -Location: http://localhost/v1/volume/targets/1180320e-139d-440e-a13e-651f28945a43 -Openstack-Request-Id: req-bb5a7add-6421-49f8-a374-b5bc82a7db83 +Openstack-Request-Id: req-5d4f2dc6-cfcd-49ae-bcb5-caeb861e30c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1180320e-139d-440e-a13e-651f28945a43", "created_at": "2024-01-06T10:58:02.680116+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1180320e-139d-440e-a13e-651f28945a43", "rel": "self"}, {"href": "http://localhost/volume/targets/1180320e-139d-440e-a13e-651f28945a43", "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 +{"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 -Location: http://localhost/v1/volume/targets/8211e38c-f14d-49fd-a4a5-936898b330a9 -Openstack-Request-Id: req-7fcd2141-f0e8-49fa-89a9-2640302b3b9f +Openstack-Request-Id: req-11d41cc4-5c92-4d68-9bb0-ab580979d679 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "8211e38c-f14d-49fd-a4a5-936898b330a9", "created_at": "2024-01-06T10:58:02.978170+00:00", "updated_at": null, "boot_index": 3, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/8211e38c-f14d-49fd-a4a5-936898b330a9", "rel": "self"}, {"href": "http://localhost/volume/targets/8211e38c-f14d-49fd-a4a5-936898b330a9", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} -ACL Test GOT Response: 201 Created +{"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 -Location: http://localhost/v1/volume/targets/8211e38c-f14d-49fd-a4a5-936898b330a9 -Openstack-Request-Id: req-7fcd2141-f0e8-49fa-89a9-2640302b3b9f +Openstack-Request-Id: req-34b91a6e-8a85-470c-af33-4db50c252aab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "8211e38c-f14d-49fd-a4a5-936898b330a9", "created_at": "2024-01-06T10:58:02.978170+00:00", "updated_at": null, "boot_index": 3, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/8211e38c-f14d-49fd-a4a5-936898b330a9", "rel": "self"}, {"href": "http://localhost/volume/targets/8211e38c-f14d-49fd-a4a5-936898b330a9", "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 +{"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 -Location: http://localhost/v1/volume/targets/201c0b6f-9ee2-42ae-9712-9d42910eeec6 -Openstack-Request-Id: req-3e30e3be-0c64-4b84-b71b-bf3ff04c65ea +Openstack-Request-Id: req-a0010366-477c-42ee-bebc-5658be99adba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "201c0b6f-9ee2-42ae-9712-9d42910eeec6", "created_at": "2024-01-06T10:58:03.050705+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/201c0b6f-9ee2-42ae-9712-9d42910eeec6", "rel": "self"}, {"href": "http://localhost/volume/targets/201c0b6f-9ee2-42ae-9712-9d42910eeec6", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} -ACL Test GOT Response: 201 Created +{"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 -Location: http://localhost/v1/volume/targets/201c0b6f-9ee2-42ae-9712-9d42910eeec6 -Openstack-Request-Id: req-3e30e3be-0c64-4b84-b71b-bf3ff04c65ea +Openstack-Request-Id: req-8ac97dd9-26bc-4cba-9e59-62e60f0bd409 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "201c0b6f-9ee2-42ae-9712-9d42910eeec6", "created_at": "2024-01-06T10:58:03.050705+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/201c0b6f-9ee2-42ae-9712-9d42910eeec6", "rel": "self"}, {"href": "http://localhost/volume/targets/201c0b6f-9ee2-42ae-9712-9d42910eeec6", "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 +{"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 -Location: http://localhost/v1/volume/targets/b1342319-9806-4f64-88ce-7f3ecfc5339e -Openstack-Request-Id: req-1569ca10-426f-4584-8eb3-57a47dd3ac32 +Openstack-Request-Id: req-c69c2822-1c3c-48f2-8f33-e5110e53b39e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "b1342319-9806-4f64-88ce-7f3ecfc5339e", "created_at": "2024-01-06T10:58:03.124401+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id3", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/b1342319-9806-4f64-88ce-7f3ecfc5339e", "rel": "self"}, {"href": "http://localhost/volume/targets/b1342319-9806-4f64-88ce-7f3ecfc5339e", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} -ACL Test GOT Response: 201 Created +{"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 -Location: http://localhost/v1/volume/targets/b1342319-9806-4f64-88ce-7f3ecfc5339e -Openstack-Request-Id: req-1569ca10-426f-4584-8eb3-57a47dd3ac32 +Openstack-Request-Id: req-bf0ec6aa-3b95-431b-87d9-c251d1f0d70f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "b1342319-9806-4f64-88ce-7f3ecfc5339e", "created_at": "2024-01-06T10:58:03.124401+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id3", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/b1342319-9806-4f64-88ce-7f3ecfc5339e", "rel": "self"}, {"href": "http://localhost/volume/targets/b1342319-9806-4f64-88ce-7f3ecfc5339e", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} -API ACL Testing Path post /v1/volume/targets -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 -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.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.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_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.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_agent.AgentRAIDTestCase.test__delete_configuration_final -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final ... 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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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_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.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.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.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 -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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +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.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.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.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.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.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.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.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.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.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.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.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.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.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 +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-b21015c5-53b9-4ee4-ac44-16584062bf22 +Openstack-Request-Id: req-e47f252f-a66c-4cd5-bc1b-f4e38b00a9b3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 +{"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-b21015c5-53b9-4ee4-ac44-16584062bf22 +Openstack-Request-Id: req-e302073b-4016-44b3-a6fa-54758ea26ca6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 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 +{"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-19dc3ab5-8797-4fbe-986f-9f5ff26cbb83 +Openstack-Request-Id: req-db7a81b8-ff65-4b34-924b-6b73c15c0ed6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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-19dc3ab5-8797-4fbe-986f-9f5ff26cbb83 +Openstack-Request-Id: req-2863c918-2cc1-4fef-9b2a-532f0c930f98 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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: 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-96fd162b-189a-4bdc-a15a-2810a4c342e8 +Openstack-Request-Id: req-31542382-70c0-453b-bc9b-0a33970ad976 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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-96fd162b-189a-4bdc-a15a-2810a4c342e8 +Openstack-Request-Id: req-30d3248b-3307-4499-92f7-0f3556d3299f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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: 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/ports +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a10cc318-0fce-4b45-a7c8-c0f9d7e4f459 +Openstack-Request-Id: req-a618131f-c99d-4816-bdb9-27673462b2c2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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/ports +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a10cc318-0fce-4b45-a7c8-c0f9d7e4f459 +Openstack-Request-Id: req-48165510-71f7-4a28-8fec-368e298dd58d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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: 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-0bc59e4f-9b52-4875-bd01-17dc13bcd662 +Openstack-Request-Id: req-1e0be75c-d3db-46ff-b478-d113a0ef01da X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 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-0bc59e4f-9b52-4875-bd01-17dc13bcd662 +Openstack-Request-Id: req-a13f3f87-d0c5-4174-9b65-2fd14ce62962 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 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'}}] +{"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-3f0eed0a-d42b-4bc4-a14e-738df90f7b8d +Openstack-Request-Id: req-c8d1d7ae-a75c-4396-a7b4-28a405deeb44 X-Openstack-Ironic-Api-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/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-3f0eed0a-d42b-4bc4-a14e-738df90f7b8d +Openstack-Request-Id: req-0fc71288-4ccc-4436-8b25-13c120fb4180 X-Openstack-Ironic-Api-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: 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/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-47360685-60e4-4c8a-8ddd-a8dcb4bcd694 +Openstack-Request-Id: req-ce86e134-e2c4-420d-8bbb-68ef38c13e1e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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}"} +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-47360685-60e4-4c8a-8ddd-a8dcb4bcd694 +Openstack-Request-Id: req-4b90713d-b9b8-4074-b851-dbba72182259 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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\": \"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 {} +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.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.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.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.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.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.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.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.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.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.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.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.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.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.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 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2e9def56-4721-4bb5-8c71-4f90c989bdab +Openstack-Request-Id: req-40905335-4d75-47c6-b9af-4e412ebde184 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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}"} +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-2e9def56-4721-4bb5-8c71-4f90c989bdab +Openstack-Request-Id: req-41c8b7bb-7540-40eb-96dc-5c9e426d395e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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_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_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.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_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_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_boot_mode_utils.SecureBootTestCase.test_deconfigure_exception -ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_exception ... 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.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_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.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.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.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.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 -ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_another_fs ... 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.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail -ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail ... 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.test_image_cache.CleanupImageCacheTestCase.test_no_clean_up -ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_no_clean_up ... 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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 -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/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-de006cb6-ae3a-4abe-9cfc-b66cc9e89bbe +Openstack-Request-Id: req-f09dfd27-4cb9-4ceb-bcea-f767b6c61ba2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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}"} +API ACL Testing Path get /v1/volume +GET: /v1/volume {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-de006cb6-ae3a-4abe-9cfc-b66cc9e89bbe +Openstack-Request-Id: req-660ffab7-4142-47fa-9e55-727d141022be X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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\": \"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-83f2ec1c-f8da-42ec-9205-1bd8edb618c0 +Openstack-Request-Id: req-2c33c575-1996-497a-913c-8af6a99c718d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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: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-83f2ec1c-f8da-42ec-9205-1bd8edb618c0 +Openstack-Request-Id: req-66738571-4336-40d3-a110-3f85c46878de X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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 +{"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-723f91ce-61d0-41e7-b899-03d2419bc72c +Openstack-Request-Id: req-43feefd6-b803-42ce-b37d-f96641565f08 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-723f91ce-61d0-41e7-b899-03d2419bc72c +Openstack-Request-Id: req-e6bd443e-598a-4dcc-b1be-ce02ad624c51 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-00edc704-50ed-44a5-812a-2ad5de22aa47 +Openstack-Request-Id: req-bde0bfa1-a7fe-40fc-a6fa-42bdd532d6e9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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\": \"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-00edc704-50ed-44a5-812a-2ad5de22aa47 +Openstack-Request-Id: req-042e0b19-3d73-4d41-a072-e5f3928cde78 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: 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-1cccb73f-672d-4e92-a25e-1a6b4748cc68 +Openstack-Request-Id: req-7352396a-bcfe-41d5-9361-ddb79b43fa2f X-Openstack-Ironic-Api-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: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-1cccb73f-672d-4e92-a25e-1a6b4748cc68 +Openstack-Request-Id: req-42d30503-a2eb-4ea5-ac27-ffb378f9e659 X-Openstack-Ironic-Api-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\": \"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-36900566-b989-4cfa-9fea-451eeb1befd1 +Openstack-Request-Id: req-6b23efb8-ecf0-4cb5-86f7-5efcb8daa4d4 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\": \"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-36900566-b989-4cfa-9fea-451eeb1befd1 +Openstack-Request-Id: req-fdaaa2fe-9878-47b8-9770-2441f61498e2 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\": \"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-60f59916-bd83-49a0-b34f-2192ab3b895c +Openstack-Request-Id: req-ec93c375-f2d0-4b72-80fc-f486c771d5bd 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\": \"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'}}] +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.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.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.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.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.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.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.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.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.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.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.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.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.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 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-60f59916-bd83-49a0-b34f-2192ab3b895c +Openstack-Request-Id: req-0f65e8c3-770f-4c4e-aa06-912e2c86daf5 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\": \"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-19e1e26c-573b-4ee6-8838-1a962486d662 +Openstack-Request-Id: req-f0bcb8ce-aa41-4aba-88f6-4b40c5f58eb9 X-Openstack-Ironic-Api-Maximum-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_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.test_pxe.PXEBootTestCase.test_clean_up_ramdisk -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk ... 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.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.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.test_pxe.PXEBootTestCase.test_get_properties -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties ... 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.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_pxe.PXEBootTestCase.test_prepare_instance -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance ... 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.test_pxe.PXEBootTestCase.test_prepare_instance_active -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_active ... 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.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.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.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.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.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.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 -ACL Test GOT Response: 404 Not Found +{"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-19e1e26c-573b-4ee6-8838-1a962486d662 +Openstack-Request-Id: req-e821bc42-7f27-4db3-aaa8-39a86b21178b X-Openstack-Ironic-Api-Maximum-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/volume/targets -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume/targets {} -GOT:Response: 200 OK +{"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-d39065f3-fee9-43ee-909b-de4833438544 +Openstack-Request-Id: req-74d53453-5ad4-403d-83c0-aa2f566ddae8 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 +{"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-d39065f3-fee9-43ee-909b-de4833438544 +Openstack-Request-Id: req-f7870ed0-c8ba-4f8e-b03b-27d45203b89e 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"}]} -API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/targets -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/targets {} -GOT:Response: 200 OK +{"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-f05ca052-696f-49ba-ac1d-6e8fa77f6a06 +Openstack-Request-Id: req-4bb8ee4a-4dc0-409d-978a-0d279f53f926 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 +{"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-f05ca052-696f-49ba-ac1d-6e8fa77f6a06 +Openstack-Request-Id: req-d08b85cd-3136-440f-ac73-c38274e930c0 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"}]} -API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/targets -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/targets {} -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/targets +GET: /v1/volume/targets {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-68e6aaf1-1f38-4efa-bb2b-919e1db9d80d +Openstack-Request-Id: req-fe22c941-67ef-4f5b-aa75-8738f030cafd X-Openstack-Ironic-Api-Maximum-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:volume:list\", \"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-68e6aaf1-1f38-4efa-bb2b-919e1db9d80d +Openstack-Request-Id: req-a8f956af-621a-4632-98d1-eecb82e674b9 X-Openstack-Ironic-Api-Maximum-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/drivers -GET: /v1/drivers {} -GOT:Response: 500 Internal Server Error +{"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 Content-Type: application/json -Openstack-Request-Id: req-ea87b4a3-702a-4086-bdec-7a087be31990 +Openstack-Request-Id: req-efdeb8a1-9ad8-4a9f-9847-0111a756a227 X-Openstack-Ironic-Api-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 +{"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-ea87b4a3-702a-4086-bdec-7a087be31990 +Openstack-Request-Id: req-cd427ed7-8006-47d5-9484-114da5bbcbc2 X-Openstack-Ironic-Api-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 +{"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-847fb78c-42b2-492a-b40e-bf800f7210d9 +Openstack-Request-Id: req-cf00c682-011d-48a3-84ce-5422a08bf48d X-Openstack-Ironic-Api-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 +{"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 Content-Type: application/json -Openstack-Request-Id: req-847fb78c-42b2-492a-b40e-bf800f7210d9 +Openstack-Request-Id: req-01d7ce76-80a9-44ed-a444-583244def5bb X-Openstack-Ironic-Api-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 +{"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-fe228d46-d216-4476-a523-1eed55a95dda +Openstack-Request-Id: req-3f4897f2-ab0b-47de-90a8-991c795b4ec4 X-Openstack-Ironic-Api-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 +{"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 {} +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.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.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.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.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.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.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.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.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.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.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.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.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.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 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-fe228d46-d216-4476-a523-1eed55a95dda +Openstack-Request-Id: req-5291c751-6c74-4561-a1bc-dfcc53cb466d X-Openstack-Ironic-Api-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/vendor_passthru/methods -GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} -GOT:Response: 500 Internal Server Error +{"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-377a62b7-7e98-4ade-809c-763705ca9e8d +Openstack-Request-Id: req-fb36e2ab-6e4d-4354-ac88-371e89b5b703 X-Openstack-Ironic-Api-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.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.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.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.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.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_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.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.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.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.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_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.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.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.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.test_pxe.PXEBootTestCase.test_prepare_ramdisk -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk ... 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.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_pxe.PXEBootTestCase.test_prepare_ramdisk_bios -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_bios ... 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.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.test_pxe.PXEBootTestCase.test_prepare_ramdisk_cleaning -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_cleaning ... 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.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_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.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.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_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_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_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue ... ok -ACL Test GOT Response: 500 Internal Server Error +{"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-377a62b7-7e98-4ade-809c-763705ca9e8d +Openstack-Request-Id: req-4abd89ff-f2a5-4ed3-9454-07d60b547403 X-Openstack-Ironic-Api-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 {} -GOT:Response: 500 Internal Server Error +{"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-406f9100-b785-4eea-b98f-01353d2fc252 +Openstack-Request-Id: req-612e9690-1939-4189-8a9c-c6b834ce3881 X-Openstack-Ironic-Api-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 +{"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-406f9100-b785-4eea-b98f-01353d2fc252 +Openstack-Request-Id: req-c1aeede3-47c0-4f93-95e0-99ce19a04a1f X-Openstack-Ironic-Api-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 {} -GOT:Response: 500 Internal Server Error +{"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-8bdf480f-84a2-4a4b-ba5a-694b8e7a6795 +Openstack-Request-Id: req-4cbdfc4e-82cf-416f-8833-7e55794a0b46 X-Openstack-Ironic-Api-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 +{"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-8bdf480f-84a2-4a4b-ba5a-694b8e7a6795 +Openstack-Request-Id: req-bb2dcb24-39ee-4ba9-9d2e-46163893046c X-Openstack-Ironic-Api-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/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/bios -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/bios {} -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-4ebc2e77-2e8a-4a71-8294-164f7ec8d097 +Openstack-Request-Id: req-47043cfc-5dbb-45b8-aa45-32980511f56b 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 +{"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-4ebc2e77-2e8a-4a71-8294-164f7ec8d097 +Openstack-Request-Id: req-b53a4da7-4f41-4a38-aa6e-8e5280810e81 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"bios": []} -API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/bios -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/bios {} -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-4ae2f8ca-bc58-4c32-a0a2-5b60696a067b +Openstack-Request-Id: req-6cf0c546-24d6-4732-958b-3f8f8f3466bf 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 +{"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-4ae2f8ca-bc58-4c32-a0a2-5b60696a067b +Openstack-Request-Id: req-97fa643b-77cb-4b53-b3b2-6d74c8bffdb2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"bios": []} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/bios -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/bios {} +{"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-9292ae09-986f-42ef-8382-ed4ebc41ce3f +Openstack-Request-Id: req-dcb5be8d-1040-4d2c-88cb-1ce1e1c12d2a X-Openstack-Ironic-Api-Maximum-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 +{"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-9292ae09-986f-42ef-8382-ed4ebc41ce3f +Openstack-Request-Id: req-bea92dca-7383-4013-8d05-e8d07f0e3017 X-Openstack-Ironic-Api-Maximum-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/conductors -GET: /v1/conductors {} -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/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-03a47026-27d6-44c1-8319-5af837802aa9 +Openstack-Request-Id: req-d29730f2-682e-4233-b15e-6a4a0212472d X-Openstack-Ironic-Api-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 +{"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.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.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.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.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.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.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.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.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_214_drivers_properties_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_214_drivers_properties_get_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.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.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.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.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 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-03a47026-27d6-44c1-8319-5af837802aa9 +Openstack-Request-Id: req-b204473a-75af-4900-b608-a9fe034e415b X-Openstack-Ironic-Api-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}"} -API ACL Testing Path get /v1/conductors -GET: /v1/conductors {} -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/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-96d9bd08-fb3d-47b7-a634-a059f18f5081 +Openstack-Request-Id: req-272d77d7-7e42-485b-8fa4-45125de9dad6 X-Openstack-Ironic-Api-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 +{"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 {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-96d9bd08-fb3d-47b7-a634-a059f18f5081 +Openstack-Request-Id: req-3f8054a1-4edd-4361-b337-1180b005d359 X-Openstack-Ironic-Api-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}"} -API ACL Testing Path get /v1/conductors -GET: /v1/conductors {} +{"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-b53c81eb-8489-4be3-ac40-bebb8f0f6566 +Openstack-Request-Id: req-9114e8ec-a8e5-4af7-83dd-7b6ef1b7c384 X-Openstack-Ironic-Api-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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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 -ACL Test GOT Response: 500 Internal Server Error +{"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-b53c81eb-8489-4be3-ac40-bebb8f0f6566 +Openstack-Request-Id: req-0065aa46-91d5-4383-ad1f-382e4b6c4aad X-Openstack-Ironic-Api-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}"} -API ACL Testing Path get /v1/allocations -GET: /v1/allocations {} -GOT:Response: 200 OK +{"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-2b65ac29-eaae-4a4a-8300-52260c863554 +Openstack-Request-Id: req-02fc9736-f9f9-4c7b-84d3-3af5e115139c 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": "18a26dfb-7639-408f-b043-3ab1c56484fe", "created_at": "2024-01-06T10:58:05.354971+00:00", "updated_at": "2024-01-06T10:58:05.356880+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/18a26dfb-7639-408f-b043-3ab1c56484fe", "rel": "self"}, {"href": "http://localhost/allocations/18a26dfb-7639-408f-b043-3ab1c56484fe", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} -ACL Test GOT Response: 200 OK +{"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-2b65ac29-eaae-4a4a-8300-52260c863554 +Openstack-Request-Id: req-0001aeb8-76e2-42d5-8bdb-9c53bce839c5 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": "18a26dfb-7639-408f-b043-3ab1c56484fe", "created_at": "2024-01-06T10:58:05.354971+00:00", "updated_at": "2024-01-06T10:58:05.356880+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/18a26dfb-7639-408f-b043-3ab1c56484fe", "rel": "self"}, {"href": "http://localhost/allocations/18a26dfb-7639-408f-b043-3ab1c56484fe", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} -API ACL Testing Path get /v1/allocations -GET: /v1/allocations {} -GOT:Response: 200 OK +{"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-94d24334-1319-4ef9-8d17-b4efaf99edb5 +Openstack-Request-Id: req-00f36b17-ad4d-4fd8-bcd7-de9550a27e99 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": "6caf39f6-5db3-439e-a220-14950a549ce6", "created_at": "2024-01-06T10:58:05.426021+00:00", "updated_at": "2024-01-06T10:58:05.427923+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/6caf39f6-5db3-439e-a220-14950a549ce6", "rel": "self"}, {"href": "http://localhost/allocations/6caf39f6-5db3-439e-a220-14950a549ce6", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} -ACL Test GOT Response: 200 OK +{"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-94d24334-1319-4ef9-8d17-b4efaf99edb5 +Openstack-Request-Id: req-a5e89b21-9202-4ff4-846e-d513b428ddea 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": "6caf39f6-5db3-439e-a220-14950a549ce6", "created_at": "2024-01-06T10:58:05.426021+00:00", "updated_at": "2024-01-06T10:58:05.427923+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/6caf39f6-5db3-439e-a220-14950a549ce6", "rel": "self"}, {"href": "http://localhost/allocations/6caf39f6-5db3-439e-a220-14950a549ce6", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} -API ACL Testing Path get /v1/allocations/3fdb2564-a822-4467-9cb1-ca77cf725449 -GET: /v1/allocations/3fdb2564-a822-4467-9cb1-ca77cf725449 {} -GOT:Response: 200 OK +{"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-aeba4f89-5cad-4dcd-98a9-594c97fe4807 +Openstack-Request-Id: req-1a720629-5515-4327-9bc2-5d6c3a82f3c5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "3fdb2564-a822-4467-9cb1-ca77cf725449", "created_at": "2024-01-06T10:58:05.485579+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/3fdb2564-a822-4467-9cb1-ca77cf725449", "rel": "self"}, {"href": "http://localhost/allocations/3fdb2564-a822-4467-9cb1-ca77cf725449", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} -resource_class -CUSTOM_TEST -ACL Test GOT Response: 200 OK +{"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-aeba4f89-5cad-4dcd-98a9-594c97fe4807 +Openstack-Request-Id: req-bed1f7c2-d225-469a-a756-001c5df958c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "3fdb2564-a822-4467-9cb1-ca77cf725449", "created_at": "2024-01-06T10:58:05.485579+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/3fdb2564-a822-4467-9cb1-ca77cf725449", "rel": "self"}, {"href": "http://localhost/allocations/3fdb2564-a822-4467-9cb1-ca77cf725449", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} -API ACL Testing Path get /v1/allocations/e1f9ed29-2e37-4eac-bcfe-08b9ec93db15 -GET: /v1/allocations/e1f9ed29-2e37-4eac-bcfe-08b9ec93db15 {} -GOT:Response: 200 OK +{"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-2c669318-0e3c-49a7-99d4-575f035c763a +Openstack-Request-Id: req-d0b19217-e0e0-4b87-99ab-a8255fdb20da X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e1f9ed29-2e37-4eac-bcfe-08b9ec93db15", "created_at": "2024-01-06T10:58:05.562662+00:00", "updated_at": "2024-01-06T10:58:05.564547+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/e1f9ed29-2e37-4eac-bcfe-08b9ec93db15", "rel": "self"}, {"href": "http://localhost/allocations/e1f9ed29-2e37-4eac-bcfe-08b9ec93db15", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} -resource_class -CUSTOM_LEASED -ACL Test GOT Response: 200 OK +{"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-2c669318-0e3c-49a7-99d4-575f035c763a +Openstack-Request-Id: req-855e6843-f4be-4f14-88e5-8ee6c63843eb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e1f9ed29-2e37-4eac-bcfe-08b9ec93db15", "created_at": "2024-01-06T10:58:05.562662+00:00", "updated_at": "2024-01-06T10:58:05.564547+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/e1f9ed29-2e37-4eac-bcfe-08b9ec93db15", "rel": "self"}, {"href": "http://localhost/allocations/e1f9ed29-2e37-4eac-bcfe-08b9ec93db15", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} -API ACL Testing Path delete /v1/allocations/cdebcea0-0d86-4eb5-9404-b375e8bee92c -DELETE: /v1/allocations/cdebcea0-0d86-4eb5-9404-b375e8bee92c -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.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.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.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.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.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.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.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.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_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.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.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.modules.test_pxe.PXEBootTestCase.test_validate_good -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good ... 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.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.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.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.modules.test_pxe.PXEBootTestCase.test_validate_inspection -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_inspection ... 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_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.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.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_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.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.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.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_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.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_pxe.PXEBootTestCase.test_validate_non_local -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_non_local ... 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_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 -GOT:Response: 503 Service Unavailable +{"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-3f952715-a6ab-4375-a35a-bb67a912f8e8 +Openstack-Request-Id: req-0aa7520d-7016-4d8a-8e9b-95937e744bf1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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: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}"} +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.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.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.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.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.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.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.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.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.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.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.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.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.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' +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-3f952715-a6ab-4375-a35a-bb67a912f8e8 +Openstack-Request-Id: req-140ca5c6-3456-4f7a-9a02-4e2a9108babc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/7603e08f-f508-417e-bc3d-06c30c59f0fc -DELETE: /v1/allocations/7603e08f-f508-417e-bc3d-06c30c59f0fc -GOT:Response: 503 Service Unavailable +{"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 {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-e51be50f-7147-414f-a1f5-ed3296cf5c72 +Openstack-Request-Id: req-7c43cff3-62e8-413c-9819-c65443119330 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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: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 {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-e51be50f-7147-414f-a1f5-ed3296cf5c72 +Openstack-Request-Id: req-4ccf186f-f0c7-4630-a853-8a879f077c62 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/991ff527-e12b-4390-81b2-278a30d4dd0e -DELETE: /v1/allocations/991ff527-e12b-4390-81b2-278a30d4dd0e -GOT:Response: 503 Service Unavailable +{"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 +GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-01123da2-18e2-42f7-b089-04e6fcf24098 +Openstack-Request-Id: req-35e69ccc-496a-4364-ac70-8221a882ad85 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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: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 +GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-01123da2-18e2-42f7-b089-04e6fcf24098 +Openstack-Request-Id: req-5f39c370-7cd9-447b-b2fb-53b9ce0930de X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/3de91a43-7972-4a16-9cfd-1ab77b93bc7b -DELETE: /v1/allocations/3de91a43-7972-4a16-9cfd-1ab77b93bc7b -GOT:Response: 503 Service Unavailable +{"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 +GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-3fce63f8-88ad-4a44-8a00-3ae2b0fb4a44 +Openstack-Request-Id: req-e541bf64-3354-4820-86a0-caade332c46b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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: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 post /v1/drivers/fake-driverz/vendor_passthru?method=test +POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-3fce63f8-88ad-4a44-8a00-3ae2b0fb4a44 +Openstack-Request-Id: req-18ba19ff-15ec-4c09-a4df-a642f846ca07 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/a68878ea-761c-4691-ad81-94a3c3b846c8 -DELETE: /v1/allocations/a68878ea-761c-4691-ad81-94a3c3b846c8 -GOT:Response: 503 Service Unavailable +{"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 post /v1/drivers/fake-driverz/vendor_passthru?method=test +POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-0ef27b30-e7b4-4253-a675-83c76bb8f51d +Openstack-Request-Id: req-1adeac6c-08d4-441e-adc4-1e5d060a5fb0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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: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 post /v1/drivers/fake-driverz/vendor_passthru?method=test +POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-0ef27b30-e7b4-4253-a675-83c76bb8f51d +Openstack-Request-Id: req-60a7937b-adfc-415f-97a5-7ecc51f1be27 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/be249d59-ffb8-4229-ab28-84d4e46868e4 -DELETE: /v1/allocations/be249d59-ffb8-4229-ab28-84d4e46868e4 -GOT:Response: 503 Service Unavailable +{"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 put /v1/drivers/fake-driverz/vendor_passthru?method=test +PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-65be6771-f210-450f-b0a6-cd74968a85e5 +Openstack-Request-Id: req-9e99344b-3c4f-45d6-93b7-fabaf6648a13 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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: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 put /v1/drivers/fake-driverz/vendor_passthru?method=test +PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-65be6771-f210-450f-b0a6-cd74968a85e5 +Openstack-Request-Id: req-72326581-a74c-498d-bf8e-7d77b68df015 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/96107890-e085-4992-8803-1d5577b690eb -PATCH: /v1/allocations/96107890-e085-4992-8803-1d5577b690eb [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 200 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 put /v1/drivers/fake-driverz/vendor_passthru?method=test +PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-5c6690c2-5138-4bed-b861-b5b655bee1b1 +Openstack-Request-Id: req-404a04a0-4a1b-4c38-b3c6-377646199139 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "96107890-e085-4992-8803-1d5577b690eb", "created_at": "2024-01-06T10:58:06.036751+00:00", "updated_at": "2024-01-06T10:58:06.071505+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/96107890-e085-4992-8803-1d5577b690eb", "rel": "self"}, {"href": "http://localhost/allocations/96107890-e085-4992-8803-1d5577b690eb", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} -ACL Test GOT Response: 200 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/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} +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.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.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.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 +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.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.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.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.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.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.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.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.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.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.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.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 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5c6690c2-5138-4bed-b861-b5b655bee1b1 +Openstack-Request-Id: req-4af06a02-0c64-48d2-aec6-49af2bc45e9e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "96107890-e085-4992-8803-1d5577b690eb", "created_at": "2024-01-06T10:58:06.036751+00:00", "updated_at": "2024-01-06T10:58:06.071505+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/96107890-e085-4992-8803-1d5577b690eb", "rel": "self"}, {"href": "http://localhost/allocations/96107890-e085-4992-8803-1d5577b690eb", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} -API ACL Testing Path patch /v1/allocations/2aff4dc6-744e-4b0a-947a-eb6f810f188d -PATCH: /v1/allocations/2aff4dc6-744e-4b0a-947a-eb6f810f188d [{'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.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.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.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.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.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.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_base.DeployStepDecoratorTestCase.test_deploy_step_priority_only -ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_priority_only ... 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.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.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.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_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.drivers.test_ilo.Ilo5HardwareTestCase.test_override_raid -ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_override_raid ... 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.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.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 -ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_create_with_node ... 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.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.objects.test_deployment.TestDeploymentObject.test_destroy -ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy ... 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.objects.test_deployment.TestDeploymentObject.test_destroy_with_node -ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy_with_node ... ok -ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_get_by_node_uuid -ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_get_by_node_uuid ... 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.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.objects.test_deployment.TestDeploymentObject.test_get_by_uuid -ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_get_by_uuid ... 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.objects.test_deployment.TestDeploymentObject.test_not_found -ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_not_found ... 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.objects.test_deployment.TestDeploymentObject.test_refresh -ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_refresh ... 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.objects.test_objects.TestObjectVersions.test_object_version_check -ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check ... 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.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.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.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.objects.test_port.TestPortObject.test_get_by_address -ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address ... 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.objects.test_port.TestPortObject.test_get_by_id -ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_id ... 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.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.objects.test_port.TestPortObject.test_get_by_uuid -ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_uuid ... 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.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.objects.test_port.TestPortObject.test_list_deprecated_owner -ironic.tests.unit.objects.test_port.TestPortObject.test_list_deprecated_owner ... ok -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/bios +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9d34f18b-d180-41c6-a6ce-7f2be7b54dc9 +Openstack-Request-Id: req-a1dc40ee-845f-4549-b8a1-eb2af4db0da2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "2aff4dc6-744e-4b0a-947a-eb6f810f188d", "created_at": "2024-01-06T10:58:06.120712+00:00", "updated_at": "2024-01-06T10:58:06.147396+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/2aff4dc6-744e-4b0a-947a-eb6f810f188d", "rel": "self"}, {"href": "http://localhost/allocations/2aff4dc6-744e-4b0a-947a-eb6f810f188d", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} -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/bios +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9d34f18b-d180-41c6-a6ce-7f2be7b54dc9 +Openstack-Request-Id: req-063020d1-383f-4ad1-a1a0-76f3b92283a0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "2aff4dc6-744e-4b0a-947a-eb6f810f188d", "created_at": "2024-01-06T10:58:06.120712+00:00", "updated_at": "2024-01-06T10:58:06.147396+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/2aff4dc6-744e-4b0a-947a-eb6f810f188d", "rel": "self"}, {"href": "http://localhost/allocations/2aff4dc6-744e-4b0a-947a-eb6f810f188d", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} -API ACL Testing Path get /v1/allocations -GET: /v1/allocations {} -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/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-13e168aa-9908-41f0-aa68-f0aefa22c3d1 +Openstack-Request-Id: req-b1a88a55-c2f8-480a-9447-c9c57b667ef6 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 +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-13e168aa-9908-41f0-aa68-f0aefa22c3d1 +Openstack-Request-Id: req-dc091bcf-d051-4eb9-b57e-6b65f8889dcb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"allocations": []} -API ACL Testing Path post /v1/allocations -POST: /v1/allocations {'resource_class': 'CUSTOM_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/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-d052aeb4-2d23-4729-8d02-916d9ddbc2c2 +Openstack-Request-Id: req-05bb4bf3-256e-4421-aee6-09b9e81da8e7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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/conductors +GET: /v1/conductors {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-d052aeb4-2d23-4729-8d02-916d9ddbc2c2 +Openstack-Request-Id: req-0e690cc1-62d7-4a68-9efe-573d60b27850 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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', 'node': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'} -GOT:Response: 400 Bad Request +{"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}"} +API ACL Testing Path get /v1/conductors +GET: /v1/conductors {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-3e5ecc20-1f85-4848-b063-1f33ef5d741c +Openstack-Request-Id: req-f4adbfa0-59e3-4073-a139-4fb7c72b4afa X-Openstack-Ironic-Api-Maximum-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 +{"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}"} +API ACL Testing Path get /v1/conductors +GET: /v1/conductors {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-3e5ecc20-1f85-4848-b063-1f33ef5d741c +Openstack-Request-Id: req-0c9c1162-31ac-4725-97bf-ea5c76e5f2ad X-Openstack-Ironic-Api-Maximum-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 post /v1/allocations -POST: /v1/allocations {'resource_class': 'CUSTOM_TEST', 'candidate_nodes': ['1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f']} -GOT:Response: 400 Bad Request +{"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}"} +API ACL Testing Path get /v1/conductors/test-conductor-node +GET: /v1/conductors/test-conductor-node {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-4c35a5ab-4541-49c9-9c9e-22b2ab65395d +Openstack-Request-Id: req-3facd9aa-88c1-45ec-bfbe-8fdaf1d4df1e X-Openstack-Ironic-Api-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: 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f, 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881\", \"debuginfo\": null}"} -ACL Test GOT Response: 400 Bad Request +{"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}"} +API ACL Testing Path get /v1/conductors/test-conductor-node +GET: /v1/conductors/test-conductor-node {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-4c35a5ab-4541-49c9-9c9e-22b2ab65395d +Openstack-Request-Id: req-0ba7d116-c61e-4068-ad7a-c6eb656e8946 X-Openstack-Ironic-Api-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: 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f, 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/allocations -POST: /v1/allocations {'resource_class': 'CUSTOM_TEST', 'node': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'} -GOT:Response: 503 Service Unavailable +{"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}"} +API ACL Testing Path get /v1/conductors/test-conductor-node +GET: /v1/conductors/test-conductor-node {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-a6223a28-ee5a-45fc-857b-9b63e38db529 +Openstack-Request-Id: req-569730ac-f914-46a8-9a90-ef21c2276608 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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:conductor:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/allocations +POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a6223a28-ee5a-45fc-857b-9b63e38db529 +Openstack-Request-Id: req-cadb761a-1702-479c-ab7c-881c863778a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} API ACL Testing Path post /v1/allocations -POST: /v1/allocations {'resource_class': 'CUSTOM_TEST', 'node': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'} -GOT:Response: 503 Service Unavailable +POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fac8a69f-2063-4375-ae6a-c532620081aa +Openstack-Request-Id: req-1b21649b-5497-4473-a0c7-295856fcbe4c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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}"} +API ACL Testing Path get /v1/allocations +GET: /v1/allocations {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fac8a69f-2063-4375-ae6a-c532620081aa +Openstack-Request-Id: req-91e89cd3-e63d-4c46-b760-899e75d65cb6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/1753bf88-4ed4-43e8-80b2-377420bf5aef -GET: /v1/allocations/1753bf88-4ed4-43e8-80b2-377420bf5aef {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} +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.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.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.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.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.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.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.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.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.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.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.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.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.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 +API ACL Testing Path get /v1/allocations +GET: /v1/allocations {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-472b8cb7-6fd1-41f6-93df-46b28d8391b0 +Openstack-Request-Id: req-9a055cff-f6d1-4f5f-bd5e-584b2f95b0a7 X-Openstack-Ironic-Api-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 1753bf88-4ed4-43e8-80b2-377420bf5aef 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:allocation:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/allocations +GET: /v1/allocations {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-472b8cb7-6fd1-41f6-93df-46b28d8391b0 +Openstack-Request-Id: req-5462ccb6-ab24-4d82-9803-a899bda87ec8 X-Openstack-Ironic-Api-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 1753bf88-4ed4-43e8-80b2-377420bf5aef 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.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_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.objects.test_port.TestPortObject.test_refresh -ironic.tests.unit.objects.test_port.TestPortObject.test_refresh ... 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.objects.test_port.TestPortObject.test_save -ironic.tests.unit.objects.test_port.TestPortObject.test_save ... 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.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.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.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.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.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.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.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.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.objects.test_port.TestPortObject.test_supports_physical_network_unsupported -ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_unsupported ... ok -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'}]} -{'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.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.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.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.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.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.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.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_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.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.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.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot ... ok -API ACL Testing Path patch /v1/allocations/c481faf9-77f1-4874-8196-97bd5bcf5166 -PATCH: /v1/allocations/c481faf9-77f1-4874-8196-97bd5bcf5166 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/allocations/7df73939-f9db-40ba-ab1a-fbff1c7cfd17 +GET: /v1/allocations/7df73939-f9db-40ba-ab1a-fbff1c7cfd17 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1b5c7873-e917-4e3e-aa18-b22223368e39 +Openstack-Request-Id: req-9ee50143-125c-498f-859b-46714c8da710 X-Openstack-Ironic-Api-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 c481faf9-77f1-4874-8196-97bd5bcf5166 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 7df73939-f9db-40ba-ab1a-fbff1c7cfd17 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/allocations/91a09bae-d0a5-4e1d-afc5-cbb235de636b +GET: /v1/allocations/91a09bae-d0a5-4e1d-afc5-cbb235de636b {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1b5c7873-e917-4e3e-aa18-b22223368e39 +Openstack-Request-Id: req-effc2d3b-0ad7-4fd0-ac81-9a1e5793e0b3 X-Openstack-Ironic-Api-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 c481faf9-77f1-4874-8196-97bd5bcf5166 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/ecc6ba00-dc9c-47b3-a9f2-04a9a7b6f47f -DELETE: /v1/allocations/ecc6ba00-dc9c-47b3-a9f2-04a9a7b6f47f +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 91a09bae-d0a5-4e1d-afc5-cbb235de636b could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/allocations/033ddaf5-5154-4241-91df-2115f09847a5 +GET: /v1/allocations/033ddaf5-5154-4241-91df-2115f09847a5 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3fd6ba70-4ab8-4626-8f90-99e48676591f +Openstack-Request-Id: req-0f40a3bf-4933-4754-bfc2-b516909778ab X-Openstack-Ironic-Api-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 ecc6ba00-dc9c-47b3-a9f2-04a9a7b6f47f could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 033ddaf5-5154-4241-91df-2115f09847a5 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/allocations/d625357d-e2e0-47bd-bd5e-b5930ff9ae3b +PATCH: /v1/allocations/d625357d-e2e0-47bd-bd5e-b5930ff9ae3b [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3fd6ba70-4ab8-4626-8f90-99e48676591f +Openstack-Request-Id: req-fa8683e1-163e-410e-8401-c10ff8bedc26 X-Openstack-Ironic-Api-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 ecc6ba00-dc9c-47b3-a9f2-04a9a7b6f47f 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\": \"Allocation d625357d-e2e0-47bd-bd5e-b5930ff9ae3b could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/allocations/d1935400-1a10-41bd-aa6d-c64e8b121c39 +PATCH: /v1/allocations/d1935400-1a10-41bd-aa6d-c64e8b121c39 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-48a02cb0-3b57-4aae-a5c7-b2221e7841c6 +Openstack-Request-Id: req-04c9d6ae-e70c-4a7a-922a-07cb5a2c352f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "7bf257fc-55b0-42c0-b6aa-1a4090644413", "created_at": "2024-01-06T10:58:06.799764+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/7bf257fc-55b0-42c0-b6aa-1a4090644413", "rel": "self"}, {"href": "http://localhost/allocations/7bf257fc-55b0-42c0-b6aa-1a4090644413", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation d1935400-1a10-41bd-aa6d-c64e8b121c39 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/allocations/5b8cb8c4-54c6-48f8-b7a0-15569ef2b00c +PATCH: /v1/allocations/5b8cb8c4-54c6-48f8-b7a0-15569ef2b00c [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-48a02cb0-3b57-4aae-a5c7-b2221e7841c6 +Openstack-Request-Id: req-070bb0f3-d942-4f0e-93fb-9f63104087a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "7bf257fc-55b0-42c0-b6aa-1a4090644413", "created_at": "2024-01-06T10:58:06.799764+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/7bf257fc-55b0-42c0-b6aa-1a4090644413", "rel": "self"}, {"href": "http://localhost/allocations/7bf257fc-55b0-42c0-b6aa-1a4090644413", "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\": \"Allocation 5b8cb8c4-54c6-48f8-b7a0-15569ef2b00c could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/allocations/26b43ad8-ed51-4a1d-af6c-7ef5e2ae2edc +DELETE: /v1/allocations/26b43ad8-ed51-4a1d-af6c-7ef5e2ae2edc +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4b6b2b5a-94e2-44f3-af60-472e27cac068 +Openstack-Request-Id: req-655dfa1a-e4b9-4257-9864-2058fd39f3cc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "4498eaa9-c8db-432b-95c7-ee125991932f", "created_at": "2024-01-06T10:58:06.878638+00:00", "updated_at": "2024-01-06T10:58:06.880545+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/4498eaa9-c8db-432b-95c7-ee125991932f", "rel": "self"}, {"href": "http://localhost/allocations/4498eaa9-c8db-432b-95c7-ee125991932f", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 26b43ad8-ed51-4a1d-af6c-7ef5e2ae2edc could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/allocations/e5ce9735-bc34-4f46-a9a6-e90f627277d8 +DELETE: /v1/allocations/e5ce9735-bc34-4f46-a9a6-e90f627277d8 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4b6b2b5a-94e2-44f3-af60-472e27cac068 +Openstack-Request-Id: req-31321d45-71c4-4d58-9eb2-acabf4108f94 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "4498eaa9-c8db-432b-95c7-ee125991932f", "created_at": "2024-01-06T10:58:06.878638+00:00", "updated_at": "2024-01-06T10:58:06.880545+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/4498eaa9-c8db-432b-95c7-ee125991932f", "rel": "self"}, {"href": "http://localhost/allocations/4498eaa9-c8db-432b-95c7-ee125991932f", "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\": \"Allocation e5ce9735-bc34-4f46-a9a6-e90f627277d8 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/allocations/508a1ac2-28d1-43b8-a3f0-d0e9761f3485 +DELETE: /v1/allocations/508a1ac2-28d1-43b8-a3f0-d0e9761f3485 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e11c1f1c-b0fd-4b3f-8e04-902526754763 +Openstack-Request-Id: req-ee50a46b-cbaf-48d5-aa2e-25531c66458f X-Openstack-Ironic-Api-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\": \"Allocation 508a1ac2-28d1-43b8-a3f0-d0e9761f3485 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-e11c1f1c-b0fd-4b3f-8e04-902526754763 +Openstack-Request-Id: req-67a207b6-a3bc-48ae-84ac-d129bdcbe270 X-Openstack-Ironic-Api-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 -Content-Type: application/json -Openstack-Request-Id: req-44c33c37-dd43-4025-8fe3-5e53d22a4977 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-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-44c33c37-dd43-4025-8fe3-5e53d22a4977 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-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 +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-66ff143c-d7e6-4bae-9552-2713c88f14dd +Openstack-Request-Id: req-6a86f406-13b2-443e-a7f6-33d15cc10db3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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.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.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.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_management.RedfishManagementTestCase.test_detect_vendor -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detect_vendor ... 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.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.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.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.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.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.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.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_management.RedfishManagementTestCase.test_get_properties -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties ... 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.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.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.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.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.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_modes -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_modes ... ok -ACL Test GOT Response: 503 Service Unavailable +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-66ff143c-d7e6-4bae-9552-2713c88f14dd +Openstack-Request-Id: req-24149973-4cfc-411c-84c5-2f52dc60d14e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation -DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource 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 +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.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.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.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.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.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.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.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.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.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.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.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.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 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-edefc440-503d-48e3-9ec3-1df1fb48366d +Openstack-Request-Id: req-d1a81217-924d-4055-b8b1-0ee55df58b38 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-edefc440-503d-48e3-9ec3-1df1fb48366d +Openstack-Request-Id: req-9c3a1209-3ec1-413d-96de-3d911ca7e49c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation -DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation -GOT:Response: 503 Service Unavailable +{"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: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-27f4bf61-f677-4c3b-8a03-adb1b9ecd243 +Openstack-Request-Id: req-6f79604e-e896-4da5-ad8a-d9001d616271 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-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 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"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: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-27f4bf61-f677-4c3b-8a03-adb1b9ecd243 +Openstack-Request-Id: req-10f2466e-58ea-415f-ba46-77b69150ca49 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation -DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation -GOT:Response: 404 Not Found +{"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 post /v1/deploy_templates +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-45b1f65a-dc16-45df-bede-380a6135aeb1 +Openstack-Request-Id: req-b8f77c60-71df-42fd-911c-97beb7e9d172 X-Openstack-Ironic-Api-Maximum-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\": \"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 post /v1/deploy_templates +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-45b1f65a-dc16-45df-bede-380a6135aeb1 +Openstack-Request-Id: req-467764ab-7bc0-41a6-895f-624e787b9fb3 X-Openstack-Ironic-Api-Maximum-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}"} +{"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/deploy_templates GET: /v1/deploy_templates {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-c8c55cb8-df47-40b8-be17-baaf02f476f6 +Openstack-Request-Id: req-f5fbd2a5-4a61-4c9e-a087-b951ff872880 X-Openstack-Ironic-Api-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 +API ACL Testing Path get /v1/deploy_templates +GET: /v1/deploy_templates {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-c8c55cb8-df47-40b8-be17-baaf02f476f6 +Openstack-Request-Id: req-d9294141-9c8f-40ad-a44d-bcac7f22f8a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53787,310 +54573,311 @@ GET: /v1/deploy_templates {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-bc5b75ff-186d-4d99-9482-de9e8d5b534c +Openstack-Request-Id: req-7542f0a9-36fc-49b1-a815-ef2d6093c0b7 X-Openstack-Ironic-Api-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 +API ACL Testing Path get /v1/deploy_templates/b82c9d00-c9ff-482b-af88-8e32738318a2 +GET: /v1/deploy_templates/b82c9d00-c9ff-482b-af88-8e32738318a2 {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-bc5b75ff-186d-4d99-9482-de9e8d5b534c +Openstack-Request-Id: req-52624a4c-de86-4a3a-9c50-3e53b4be2e7e X-Openstack-Ironic-Api-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 -GET: /v1/deploy_templates {} +API ACL Testing Path get /v1/deploy_templates/31c6cb2c-95e1-4d35-a770-751c5aa50436 +GET: /v1/deploy_templates/31c6cb2c-95e1-4d35-a770-751c5aa50436 {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-30a9c635-20e1-4577-9e79-a6ae72516f1e +Openstack-Request-Id: req-e423d088-ae1c-4e57-b198-310febf6e819 X-Openstack-Ironic-Api-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 +API ACL Testing Path get /v1/deploy_templates/35710c0e-1172-47c1-b1ae-2251b46d47d7 +GET: /v1/deploy_templates/35710c0e-1172-47c1-b1ae-2251b46d47d7 {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-30a9c635-20e1-4577-9e79-a6ae72516f1e +Openstack-Request-Id: req-7787fd71-3a81-4a02-ab63-74a168426277 X-Openstack-Ironic-Api-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 post /v1/deploy_templates -POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} +API ACL Testing Path patch /v1/deploy_templates/d9673c4a-1c3a-4769-9f76-8060ed6d5848 +PATCH: /v1/deploy_templates/d9673c4a-1c3a-4769-9f76-8060ed6d5848 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-79978eb2-72fc-477e-813e-53e283672807 +Openstack-Request-Id: req-5029eda9-982d-402c-8bc4-4c49bb7aa641 X-Openstack-Ironic-Api-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 +{"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/fbd360fe-a35c-457b-ba31-9ec4e81e3a09 +PATCH: /v1/deploy_templates/fbd360fe-a35c-457b-ba31-9ec4e81e3a09 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] +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.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.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.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.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.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.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.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.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.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.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.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.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 +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-79978eb2-72fc-477e-813e-53e283672807 +Openstack-Request-Id: req-f98bad61-0d59-44c2-9bb4-e3d007a31a2e X-Openstack-Ironic-Api-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.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.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.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.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_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.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_management.RedfishManagementTestCase.test_loading_error -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_loading_error ... 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.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.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.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.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.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.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.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_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.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.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.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail ... ok +{"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/7fba1304-6215-4c96-9f00-3c504ba8e81e +PATCH: /v1/deploy_templates/7fba1304-6215-4c96-9f00-3c504ba8e81e [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-7e572165-8b06-4bd9-a9c6-dd0c3f950e06 +Openstack-Request-Id: req-0ddd6727-215a-4630-8114-e3a4303aef67 X-Openstack-Ironic-Api-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 +{"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/961f9612-b203-4395-8d39-5f55b8cd5dd5 +DELETE: /v1/deploy_templates/961f9612-b203-4395-8d39-5f55b8cd5dd5 +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-7e572165-8b06-4bd9-a9c6-dd0c3f950e06 +Openstack-Request-Id: req-6af73205-f2f7-4423-9430-d0ebb938e32a X-Openstack-Ironic-Api-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 {} +{"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/d7a3e0f0-df2d-4a91-8207-ec045a1930ec +DELETE: /v1/deploy_templates/d7a3e0f0-df2d-4a91-8207-ec045a1930ec GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-9b62cb92-4e0c-45ff-9bbd-3a5bf4c7eacd +Openstack-Request-Id: req-f915e5b5-be62-48cf-85e0-b7fc50caaa8a X-Openstack-Ironic-Api-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 +{"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/381fe6df-dabc-43df-97ce-9a57f3abb25e +DELETE: /v1/deploy_templates/381fe6df-dabc-43df-97ce-9a57f3abb25e +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-9b62cb92-4e0c-45ff-9bbd-3a5bf4c7eacd +Openstack-Request-Id: req-6752caa4-adef-4f23-b79b-486115d6cc1f X-Openstack-Ironic-Api-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 {} +{"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-c2c4a6c7-5aad-4c73-9c49-ca22022222e4 +Openstack-Request-Id: req-243d15ac-4645-4929-be85-b0fb805d8486 X-Openstack-Ironic-Api-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 +{"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-c2c4a6c7-5aad-4c73-9c49-ca22022222e4 +Openstack-Request-Id: req-a51f3eeb-0117-4bf6-84a5-e1316a412d9f X-Openstack-Ironic-Api-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}"} +{"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-83e62df4-2bc3-42c4-aca0-c30d98891efd +Openstack-Request-Id: req-445fc5d6-b4d8-492a-a096-c43e6fbbbc4a X-Openstack-Ironic-Api-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 +API ACL Testing Path get /v1/chassis +GET: /v1/chassis {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-83e62df4-2bc3-42c4-aca0-c30d98891efd +Openstack-Request-Id: req-cdfbdf04-48b2-4beb-86bb-54096a032677 X-Openstack-Ironic-Api-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/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history {} -GOT:Response: 200 OK +{"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-7c2e84cb-a9b1-4ec9-b6c1-14b9c402206a +Openstack-Request-Id: req-e43644e9-4e6a-427b-8cb5-766f12ec4dd6 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": "394cc95a-6983-4227-a4b8-76b0e3115508", "created_at": "2024-01-06T10:58:07.871994+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/394cc95a-6983-4227-a4b8-76b0e3115508", "rel": "self"}]}]} -ACL Test GOT Response: 200 OK +{"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-7c2e84cb-a9b1-4ec9-b6c1-14b9c402206a +Openstack-Request-Id: req-2bd64d27-7d73-43bb-bb10-296092d77d31 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": "394cc95a-6983-4227-a4b8-76b0e3115508", "created_at": "2024-01-06T10:58:07.871994+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/394cc95a-6983-4227-a4b8-76b0e3115508", "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 +{"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-666d0c12-c9cd-4c71-8963-d1c258b7f42d +Openstack-Request-Id: req-48d6b306-907d-4d2a-a24a-ae74494ba9c0 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": "955743e0-6bd5-466f-9539-18fdcc7937d5", "created_at": "2024-01-06T10:58:07.942327+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/955743e0-6bd5-466f-9539-18fdcc7937d5", "rel": "self"}]}]} -ACL Test GOT Response: 200 OK +{"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-666d0c12-c9cd-4c71-8963-d1c258b7f42d +Openstack-Request-Id: req-479570e3-3ac3-4fa7-a911-75f0ff34ffd6 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": "955743e0-6bd5-466f-9539-18fdcc7937d5", "created_at": "2024-01-06T10:58:07.942327+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/955743e0-6bd5-466f-9539-18fdcc7937d5", "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 +{"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 {} +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.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.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.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.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.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.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.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.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.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.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.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 +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-0c443712-8e08-4f42-b45f-040f3ec6c58b +Openstack-Request-Id: req-40223a1c-9347-4a6a-aa2f-b277dbf3f811 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": "4ba53221-c795-46fd-99fc-89fadb484314", "created_at": "2024-01-06T10:58:08.009875+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/4ba53221-c795-46fd-99fc-89fadb484314", "rel": "self"}]}]} -ACL Test GOT Response: 200 OK +{"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-0c443712-8e08-4f42-b45f-040f3ec6c58b +Openstack-Request-Id: req-11731c1f-41d2-4ac9-ac3c-b7e11f1ec690 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": "4ba53221-c795-46fd-99fc-89fadb484314", "created_at": "2024-01-06T10:58:08.009875+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/4ba53221-c795-46fd-99fc-89fadb484314", "rel": "self"}]}]} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/626b0d9b-89b6-4b9d-8300-d2cc32183a6e -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/626b0d9b-89b6-4b9d-8300-d2cc32183a6e {} -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.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_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.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.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.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.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.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.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.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_management.RedfishManagementTestCase.test_set_boot_mode -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode ... 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.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.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.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.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.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state ... ok -GOT:Response: 404 Not Found +{"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-c9564a26-0826-4e96-b145-358afd18f5ba +Openstack-Request-Id: req-2675525c-ee2a-4eb6-b00a-ba16f2868a53 X-Openstack-Ironic-Api-Maximum-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 +{"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-c9564a26-0826-4e96-b145-358afd18f5ba +Openstack-Request-Id: req-27da87b7-bf1e-40dc-850b-cf5487689ccd X-Openstack-Ironic-Api-Maximum-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/5c00957e-6d3f-4732-bff0-31ac49054806 -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/5c00957e-6d3f-4732-bff0-31ac49054806 {} -GOT:Response: 200 OK +{"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-e1ae3363-f0c1-4054-964a-17b37913b8f3 +Openstack-Request-Id: req-cbc04f47-58d7-4c60-8e24-6bab4583043d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5c00957e-6d3f-4732-bff0-31ac49054806", "created_at": "2024-01-06T10:58:08.144510+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/5c00957e-6d3f-4732-bff0-31ac49054806", "rel": "self"}]} -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-e1ae3363-f0c1-4054-964a-17b37913b8f3 +Openstack-Request-Id: req-ae1606a9-f9cd-456a-afaf-ca02e54bed6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5c00957e-6d3f-4732-bff0-31ac49054806", "created_at": "2024-01-06T10:58:08.144510+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/5c00957e-6d3f-4732-bff0-31ac49054806", "rel": "self"}]} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/c249de2b-8d94-46bf-9a60-d5967c7facf1 -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/c249de2b-8d94-46bf-9a60-d5967c7facf1 {} -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-18f573ba-be54-42fd-8c0e-e5be5db49911 +Openstack-Request-Id: req-ce226ca8-4a7c-4f62-9694-f064a3a67c1c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "c249de2b-8d94-46bf-9a60-d5967c7facf1", "created_at": "2024-01-06T10:58:08.214274+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/c249de2b-8d94-46bf-9a60-d5967c7facf1", "rel": "self"}]} -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 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-18f573ba-be54-42fd-8c0e-e5be5db49911 +Openstack-Request-Id: req-689d58d7-40bf-4408-a6dd-ad3d47877f58 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "c249de2b-8d94-46bf-9a60-d5967c7facf1", "created_at": "2024-01-06T10:58:08.214274+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/c249de2b-8d94-46bf-9a60-d5967c7facf1", "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 +{"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-1c49ef5a-dd99-4c0c-8371-6f90ca9be3ee +Openstack-Request-Id: req-5cf4365e-d0d1-44fb-8062-264f299d8992 X-Openstack-Ironic-Api-Maximum-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\": \"\\\"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-1c49ef5a-dd99-4c0c-8371-6f90ca9be3ee +Openstack-Request-Id: req-f7005937-57bf-43b3-a5dd-008ba7c92655 X-Openstack-Ironic-Api-Maximum-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\": \"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-2d7336cb-7380-4363-bd2b-5fce5df2b3aa -X-Openstack-Ironic-Api-Maximum-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-2d7336cb-7380-4363-bd2b-5fce5df2b3aa +Openstack-Request-Id: req-7681c7da-b63b-4575-bc10-095f7e168b7b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54099,1040 +54886,484 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6ff08106-ace2-4dea-88bb-f8b410960ee2 -X-Openstack-Ironic-Api-Maximum-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-6ff08106-ace2-4dea-88bb-f8b410960ee2 +Openstack-Request-Id: req-05e8965d-48a4-4ca3-b934-b866011608e3 X-Openstack-Ironic-Api-Maximum-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/289021b7-32cf-4217-bf9e-d6d5f924fa85 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/289021b7-32cf-4217-bf9e-d6d5f924fa85 {} +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-b827d267-2e53-452e-8d36-f8982826c1e0 -X-Openstack-Ironic-Api-Maximum-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-b827d267-2e53-452e-8d36-f8982826c1e0 +Openstack-Request-Id: req-b9e033f4-280d-4a00-b022-f644158df8b8 X-Openstack-Ironic-Api-Maximum-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/ca00d0de-af5e-49d3-8152-41aa0cbc9411 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/ca00d0de-af5e-49d3-8152-41aa0cbc9411 {} -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.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.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.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.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.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.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.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_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 -/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_management.RedfishManagementTestCase.test_update_firmware -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware ... 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_management.RedfishManagementTestCase.test_update_firmware_invalid_args -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_invalid_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.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage ... 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_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.redfish.test_management.RedfishManagementTestCase.test_validate -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_validate ... 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.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.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_functions.TestFunctionDefinition.test_signature -ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_signature ... 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 +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/0a2f4b80-f067-4174-8db9-572f0b4e5ccc +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/0a2f4b80-f067-4174-8db9-572f0b4e5ccc {} +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.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 +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.api.test_audit.TestAuditMiddleware.test_disable_audit_request +ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request ... 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_audit.TestAuditMiddleware.test_enable_audit_request_error +ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error ... 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.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__allocate_port -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__allocate_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.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.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail ... 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.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok ... 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.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.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_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.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_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request -ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request ... 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_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request -ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request ... 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.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.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.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.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_detect_vendor -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_detect_vendor ... 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.common.test_args.ValidatePatchSchemaTest.test_patch -ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch ... 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.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_fsm.FSMTest.test__validate_target_state -ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state ... 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.common.test_fsm.FSMTest.test_initialize -ironic.tests.unit.common.test_fsm.FSMTest.test_initialize ... 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.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_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.common.test_fsm.FSMTest.test_is_stable_not -ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not ... 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.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state ... 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.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.TestUpdateNeutronPort.test_update_neutron_port_with_client -ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_client ... 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.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.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties ... 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.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.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.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.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.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.common.test_swift.SwiftTestCase.test_delete_object -ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object ... 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.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.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.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.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.common.test_swift.SwiftTestCase.test_get_temp_url -ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url ... 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.common.test_swift.SwiftTestCase.test_head_object -ironic.tests.unit.common.test_swift.SwiftTestCase.test_head_object ... 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.common.test_swift.SwiftTestCase.test_update_object_meta -ironic.tests.unit.common.test_swift.SwiftTestCase.test_update_object_meta ... 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.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.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.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.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.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.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.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_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.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.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_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.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.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_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_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.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.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_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.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.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_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good ... 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.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.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_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off ... 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.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_ipmitool.IPMIToolDriverTestCase.test_reboot_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok ... 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.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_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok ... 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.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_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_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_returns -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_returns ... 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.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.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.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.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_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_ipmitool.IPMIToolDriverTestCase.test_set_power_on_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_ok ... 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.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_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.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.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.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_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.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.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.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_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.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.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_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.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.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.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.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_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.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.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.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_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.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.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_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.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.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_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.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.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_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_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.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.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.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.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.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.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.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.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.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.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.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears ... 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.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.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.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.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.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.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_without_password -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_password ... 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_without_timing -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing ... 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.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.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout ... 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_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit ... 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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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_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.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.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.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.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.TaskManagerStateModelTestCases.test_release_clears_resources -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources ... 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.conductor.test_utils.AgentTokenUtilsTestCase.test_add_secret_token -ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_add_secret_token ... 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.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.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_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.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.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.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.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.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.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.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.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.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.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.common.test_args.ValidateDictTest.test_dict_valid +ironic.tests.unit.common.test_args.ValidateDictTest.test_dict_valid ... 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.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_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.common.test_image_service.FileImageServiceTestCase.test_download_copy +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy ... 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.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.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.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.common.test_image_service.FileImageServiceTestCase.test_show +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show ... 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.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_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_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.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.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.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.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_neutron.TestUpdatePortAddress.test_update_port_address +ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address ... 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.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.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.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.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_nova.NovaApiTestCase.test_invalid_power_update +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_invalid_power_update ... 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_nova.NovaApiTestCase.test_power_update_2 +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_2 ... 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_nova.NovaApiTestCase.test_power_update_4 +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_4 ... 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.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_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.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_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_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_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.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.PXEInterfacesTestCase.test__get_deploy_image_info +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_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_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.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_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.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.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_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_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.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.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.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_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.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_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_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_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.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.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_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.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.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.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_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.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.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_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker +ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker ... 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.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_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_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_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_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.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy +ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy ... 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.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.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_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_manager.CreateNodeTestCase.test_create_node +ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node ... 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_manager.CreatePortTestCase.test_create_port +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port ... 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.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_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_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.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.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.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.MiscTestCase.test_exclude_current_conductor +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_exclude_current_conductor ... 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_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_utils.MiscTestCase.test_notify_conductor_resume_operation +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_operation ... 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.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.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.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_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.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.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_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_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_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.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_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.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.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.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.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.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.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_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.db.sqlalchemy.test_models.TestGetClass.test_get_class -ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class ... 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.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.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.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.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.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.db.test_ports.DbPortTestCase.test_destroy_port -ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port ... 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.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.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.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.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.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.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.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.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.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.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.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.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.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.db.test_ports.DbPortTestCase.test_get_port_by_uuid -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_uuid ... 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.db.test_ports.DbPortTestCase.test_get_port_list -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list ... 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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 -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.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.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.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_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.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.db.test_ports.DbPortTestCase.test_update_port -ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port ... 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 -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.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.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console ... 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.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.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.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.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.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.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_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir ... 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.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate ... 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.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.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.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.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.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.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_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.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.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.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.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console ... 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.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.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_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.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.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.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.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_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.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.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_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.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_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.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.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.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.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.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.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.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.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.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.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.ilo.test_console.IloConsoleInterfaceTestCase.test_validate -ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate ... 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.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_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail ... 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.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.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.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.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.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.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.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.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_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.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_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.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.test_utils.UtilsTestCase.test_add_node_capability -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability ... 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.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.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.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.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.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.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.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.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.test_utils.UtilsTestCase.test_get_node_capability -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability ... 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.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.test_utils.UtilsTestCase.test_normalize_mac_unicode -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_unicode ... 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.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.TestNodePayloads.test_node_corrected_power_state_payload -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_corrected_power_state_payload ... 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.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.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.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_portgroup.TestConvertToVersion.test_vif_in_extra -ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra ... 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.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 -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-9eb49d65-28e7-4539-9beb-a58690dcdfdb -X-Openstack-Ironic-Api-Maximum-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/3924d742-10a4-4e4c-bd9b-b8e4c5830990 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3924d742-10a4-4e4c-bd9b-b8e4c5830990 {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-f4786eca-ed94-4c7a-a968-8e0bc27e3d0e -X-Openstack-Ironic-Api-Maximum-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/471d0e97-823c-4bb8-ab53-c10f3a2c0eca -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/471d0e97-823c-4bb8-ab53-c10f3a2c0eca {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-7401566c-fcfd-4d7a-b42b-82a84910d8f8 -X-Openstack-Ironic-Api-Maximum-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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.IRMCPXEBootBasicTestCase.test_prepare_instance_active -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_active ... 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.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.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.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.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk ... 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.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.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_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.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.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_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.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.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.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.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.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_uefi -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_uefi ... 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.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.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.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.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.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection ... 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.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.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.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.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.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.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.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.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.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.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_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.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.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_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_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.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.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.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.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.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.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.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.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.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.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.db.test_deploy_templates.DbDeployTemplateTestCase.test_create +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create ... 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.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.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.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.db.test_deploy_templates.DbDeployTemplateTestCase.test_destroy +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_destroy ... 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.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.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.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.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.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.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.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.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_extra +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_extra ... 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.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.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.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.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.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.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.dhcp.test_factory.TestDHCPFactory.test_default_dhcp +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_default_dhcp ... 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.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.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp ... 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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_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_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.test_agent.AgentRAIDTestCase.test_apply_configuration +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_apply_configuration ... 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_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_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_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_agent.AgentRAIDTestCase.test_create_configuration_skip_root +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_root ... 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.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_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_agent.AgentRAIDTestCase.test_get_deploy_steps +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_deploy_steps ... 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.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.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.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.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.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.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.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_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.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.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.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_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_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.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.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.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_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.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.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.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.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_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_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_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.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.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.test_agent_client.TestAgentClient.test__command ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_agent_client @@ -55209,278 +55440,153 @@ ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off ... 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_filename -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test__append_filename_param_with_filename ... 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_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_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.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.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.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_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_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_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_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.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.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.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_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.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.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_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_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_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_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.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.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.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.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_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.SNMPDeviceDriverTestCase.test_apc_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on ... 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.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.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.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.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.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.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_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.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.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.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off ... 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.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.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.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.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.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.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on ... 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_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset ... 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.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.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.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.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.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.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.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.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_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_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_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_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_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_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.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects ... 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.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.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.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.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.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.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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off ... 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.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.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.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_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.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_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_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout ... 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_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_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.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.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.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.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.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_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout ... 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.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_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.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_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.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.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.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.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_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.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.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.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.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.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot ... 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.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.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.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.xclarity.test_power.XClarityPowerDriverTestCase.test_validate -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate ... 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.test_generic.ManualManagementHardwareTestCase.test_get_properties -ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties ... 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.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces -ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces ... 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.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.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.objects.test_chassis.TestChassisObject.test_create -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create ... 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.objects.test_chassis.TestChassisObject.test_get_by_id -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id ... 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_chassis.TestChassisObject.test_list -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list ... 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_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 -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.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_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.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_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.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.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.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_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_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_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_inspector.InspectHardwareAbortTestCase.test_abort_error +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_error ... 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.IPMIToolCheckInitTestCase.test_console_init_calls +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls ... 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_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.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_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.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.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.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.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.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.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.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.modules.test_pxe.PXEAnacondaDeployTestCase.test_deploy +ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_deploy ... 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.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_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.PXEAnacondaDeployTestCase.test_prepare +ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare ... 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_pxe.PXEAnacondaDeployTestCase.test_prepare_cleaning +ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare_cleaning ... 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.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.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.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.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.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.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.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.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo ... 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.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.test_fake_hardware.FakeHardwareTestCase.test_boot_interface +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface ... 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.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface ... 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.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties ... 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.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_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.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.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.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.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.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.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.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.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.test_fake_hardware.FakeHardwareTestCase.test_power_interface +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface ... 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.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue ... 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_ilo.IloHardwareTestCase.test_override_with_no_bios +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_no_bios ... 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.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 @@ -55509,116 +55615,53 @@ 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_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.objects.test_trait.TestTraitObject.test_as_dict -ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict ... ok -ironic.tests.unit.objects.test_trait.TestTraitObject.test_create -ironic.tests.unit.objects.test_trait.TestTraitObject.test_create ... 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.objects.test_trait.TestTraitObject.test_destroy -ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy ... 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.objects.test_trait.TestTraitObject.test_exists -ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists ... 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.objects.test_trait.TestTraitObject.test_get_trait_names -ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-21fc08c4-a020-4ea3-b34a-f9a3c923df47 +Openstack-Request-Id: req-db638c4f-188b-4779-9286-a7ca0ba4692c X-Openstack-Ironic-Api-Maximum-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-21fc08c4-a020-4ea3-b34a-f9a3c923df47 -X-Openstack-Ironic-Api-Maximum-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/732fcb89-8993-4da2-a8d9-99afdc5e2d6c -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/732fcb89-8993-4da2-a8d9-99afdc5e2d6c {} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/d2ba8833-362e-43e7-ac6d-8b6e99618818 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/d2ba8833-362e-43e7-ac6d-8b6e99618818 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-34d10ea5-6350-423b-ae1c-92c5a8c4c9c3 -X-Openstack-Ironic-Api-Maximum-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-34d10ea5-6350-423b-ae1c-92c5a8c4c9c3 +Openstack-Request-Id: req-79da9c78-8e05-4dcd-a09d-6f9f405030e8 X-Openstack-Ironic-Api-Maximum-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 {} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/235b1ae3-fb7e-4690-b65a-39a977605c1a +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/235b1ae3-fb7e-4690-b65a-39a977605c1a {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-91e71aea-71cb-43b6-80da-c37c4e9cd47e -X-Openstack-Ironic-Api-Maximum-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-91e71aea-71cb-43b6-80da-c37c4e9cd47e +Openstack-Request-Id: req-563342f3-2859-48c6-9e39-58369e178638 X-Openstack-Ironic-Api-Maximum-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\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} GET: /v1/bad/path {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -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'}} ---------------------------------------------------------------------- -Ran 8768 tests in 241.139s +Ran 8768 tests in 220.264s OK (skipped=44) + stestr slowest -Test id Runtime (s) -------------------------------------------------------------------------------------------------------- ----------- -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version 17.454 -ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync 16.701 -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_create_schema_and_version 15.548 -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_bad_invalid_agent_status 6.953 -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_poll 6.017 -ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached 4.985 -ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_id 4.647 -ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis 4.610 -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill 4.601 -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add 4.502 +Test id Runtime (s) +--------------------------------------------------------------------------------------------------------------- ----------- +ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync 39.140 +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version 26.284 +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait 11.059 +ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis 10.865 +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid 10.077 +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_poll 6.017 +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill 5.544 +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_properties_hidden_in_lower_version 5.511 +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_associated 5.355 +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_id 5.313 + 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 \ @@ -55649,9 +55692,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.kIl2Xk:[keystone_authtoken]/www_authenticate_uri -pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.kIl2Xk:[keystone_authtoken]/auth_type -pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.kIl2Xk:[keystone_authtoken]/region_name +pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.UiJOQ9:[keystone_authtoken]/www_authenticate_uri +pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.UiJOQ9:[keystone_authtoken]/auth_type +pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.UiJOQ9:[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 @@ -57068,11 +57111,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/docs.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/js/navigation.js 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/docs.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/navigation.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' @@ -57110,15 +57153,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` +++ echo debian/ironic-api.init.in +++ sed s/.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` +++ echo debian/ironic-conductor.init.in +++ sed s/.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 @@ -57128,7 +57173,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 \ @@ -57137,16 +57182,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` +++ echo debian/ironic-api.init.in +++ sed s/.init.in/.service.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' @@ -57168,18 +57215,18 @@ else \ dh_gencontrol -- -T/build/reproducible-path/ironic-21.1.0/debian/debian_control_vars ; \ fi -dpkg-gencontrol: warning: Depends field of package ironic-api: substitution variable ${python3:Depends} used, but is not defined dpkg-gencontrol: warning: Depends field of package ironic-conductor: substitution variable ${python3:Depends} used, but is not defined +dpkg-gencontrol: warning: Depends field of package ironic-api: substitution variable ${python3:Depends} used, but is not defined dpkg-gencontrol: warning: package python3-ironic: substitution variable ${ostack-lsb-base} unused, but is defined dpkg-gencontrol: warning: package ironic-doc: substitution variable ${ostack-lsb-base} unused, but is defined dpkg-gencontrol: warning: package ironic-doc: substitution variable ${sphinxdoc:Built-Using} unused, but is defined 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-doc' in '../ironic-doc_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-conductor' in '../ironic-conductor_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-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 'ironic-common' in '../ironic-common_21.1.0-3_all.deb'. dpkg-genbuildinfo --build=binary -O../ironic_21.1.0-3_arm64.buildinfo dpkg-genchanges --build=binary -O../ironic_21.1.0-3_arm64.changes @@ -57189,12 +57236,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/3818112/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/3818112/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/1446896 and its subdirectories -I: Current time: Fri Jan 5 23:01:19 -12 2024 -I: pbuilder-time-stamp: 1704538879 +I: removing directory /srv/workspace/pbuilder/3818112 and its subdirectories +I: Current time: Sat Feb 8 07:37:44 +14 2025 +I: pbuilder-time-stamp: 1738949865